C#不能将typesSystem.DBNull隐式转换为string

需要一点帮助,我试图从工作表中拉出数据,我得到上述错误。 它发生在string文本行上。 我能做些什么转换或忽略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(); } 

提前致谢。

基本上,你需要一个条件声明。 如果你在某些types上调用了ToString() ,如果它是Null它将会抛出一个exception。 最简单的补救措施是:

 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作为大写,这是预定义的,不能用作一个variables。 代码中的另一个错误。 在评论中注意,@RonBeyer所说的关于正在使用的Text