需要一些帮助我试图从工作表中提取数据,我得到上述错误。它发生在字符串文本行上。我该怎么做才能转换它或忽略null?
var excel = new Microsoft.Office.Interop.Excel.Application();
Workbook workbook = excel.Workbooks.Open(@"C:\Documents\ANIs.xlsx");
Worksheet worksheet = workbook.Worksheets[1];
Range a1 = worksheet.get_Range("A1","B2");
object rawValue = a1.Value;
string Text = a1.Text; //<--Error Occurs here.
for (int i = 0; i < a1.Count; i++)
{
if (a1.Text != null)
Console.WriteLine("{1}", rawValue, Text);
}
Console.ReadLine();
}
提前致谢。
答案 0 :(得分:1)
基本上,您需要一个条件声明。如果您在某些类型上调用ToString()
,如果它是Null
,则会引发异常。最简单的补救措施是:
if(!(a1 is DBNull))
{
// Do Something
}
希望这有点澄清。
// Sample:
var range = worksheet.get_Range("A1","B2");
if(!(range is DBNull))
{
object raw = range.Value;
string text = range.Text;
// Loop here
}
此外,您不需要使用Text
作为资本,这是预定义的,不能用作变量。代码中的另一个错误。请注意,@ RonBeyer对正在使用的Text
说了什么。