0

我有一个有几个标题的 Excel 表。标头之一是 Param2。在我的代码中,分配给 Param2 的变量是 strParam2。这就是我的代码中声明 strParam2 的方式

 String strParam2 = xlRange.Cells[row, 7].Value;

我的代码理想地读取 excel 工作表中的单元格并执行一组操作。我在 Excel 表的 Param2 下的单元格中给出了 2 的值。为了将其转换为字符串,我使用了该行

System.Int32.TryParse(strParam2.ToString(), out iDetailLevel);

但是,我收到一个错误“无法隐式地将双精度转换为字符串”我也尝试了这一行,但是我再次收到错误。

System.Double.TryParse(strParam2.ToString(), out iDetailLevel);

这里有什么问题?以前有没有人经历过类似的事情?

4

3 回答 3

3

最有可能的是,您在分配给的行上遇到错误,strParam2因为xlRange.Cells[row, 7].Value返回 a double,它不能隐式转换为string.

于 2012-06-26T11:38:15.500 回答
2

看起来该特定单元格的值是双精度值,您的代码正试图implicitly convert通过=. 您需要检查单元格的值并进行相应的转换

String strParam2 = xlRange.Cells[row, 7].Value;

将会:

String strParam2 = xlRange.Cells[row, 7].Value.ToString();

如您所说,如果strParam2在代码中的其他地方使用,则只需创建一个新字符串来保存标题文本并保持不变:

string headerText = xlRange.Cells[row, 7].Value.ToString();

于 2012-06-26T11:41:46.840 回答
0

如果你有这条线:

String strParam2 = xlRange.Cells[row, 7].Value.ToString();

正如杜安建议的那样。您不需要在解析中包含 .ToString() 。只需使用 strParam2 值。

于 2012-06-26T11:49:47.640 回答