【发布时间】:2012-08-10 02:25:45
【问题描述】:
目前我正在这样做:
string cellValue = sheet.get_Range("A12", _missing).Value2.ToString();
这可行,但我确实需要按行和列索引选择一个单元格。
我尝试时得到一个空异常
string cellValue = ((Range)sheet.Cells[row, column]).Value2.ToString();
有什么想法吗?
【问题讨论】:
目前我正在这样做:
string cellValue = sheet.get_Range("A12", _missing).Value2.ToString();
这可行,但我确实需要按行和列索引选择一个单元格。
我尝试时得到一个空异常
string cellValue = ((Range)sheet.Cells[row, column]).Value2.ToString();
有什么想法吗?
【问题讨论】:
ArgumentNullException 出现在哪里?尝试像这样分离您的代码并逐步执行:
object rangeObject = sheet.Cells[row, column];
Range range = (Range)rangeObject;
object rangeValue = range.Value2;
string cellValue = rangeValue.ToString();
这会告诉你空对象在哪里。
【讨论】:
range.Value2 表示该单元格没有值。如果您查看 Excel 中的单元格,它是空的吗?
row + 1 和column + 1 来获取正确的单元格。
我有同样的问题。当我正在阅读的单元格为空时,会发生 nullref。
string foo = (((Range) ActiveWorksheet.Cells[row, column]).Value2 != null
? ((Range) ActiveWorksheet.Cells[row, column]).Value2.ToString()
: "Coalesce some false string here...");
请注意,在尝试转换或强制转换值之前,必须检查 null。
【讨论】: