C# 无法对空引用异常执行运行时绑定

C# 无法对空引用异常执行运行时绑定,c#,excel,exception,C#,Excel,Exception,我试图使用C#查找Excel表格的维度,方法是在第一列(由日期组成)和标题行中查找第一个空单元格 下面是我现在使用的代码: public static void findingTableBounds() { string dateCol = ""; ArrayList dateColumn = new ArrayList(); ArrayList numberOfColumns = new ArrayList(); for

我试图使用C#查找Excel表格的维度,方法是在第一列(由日期组成)和标题行中查找第一个空单元格

下面是我现在使用的代码:

public static void findingTableBounds()
    {
        string dateCol = "";
        ArrayList dateColumn = new ArrayList();
        ArrayList numberOfColumns = new ArrayList();

        for (int column = 1; column < currentRow; column++)
        {
            dateCol = ((Excel.Range)workSheet.Cells[currentRow, 1]).Value2.ToString();
            if (dateCol != "")
            {
                dateColumn.Add(dateCol);
                currentRow++;
                totalRow++;
                Console.WriteLine("Total Row: {0}", totalRow);            
            }
            else
            {
                Console.WriteLine("Total Row: {0}", totalRow);
                currentRow = 2;
            }
        }
publicstaticvoidfindingtablebounds()
{
字符串dateCol=“”;
ArrayList dateColumn=新的ArrayList();
ArrayList numberOfColumns=新的ArrayList();
for(int column=1;column
**注意:这个方法有一个右括号,我没有包括它,因为还有另一个for循环,它的作用与上面的代码完全相同,但只针对有多少列


错误发生在“dateCol=((Excel.Range)工作表.Cells[currentRow,1]).Value2.ToString();”我很确定这是因为我试图为dateCol(字符串)分配空值(单元格)当字符串是不可为null的类型时。不幸的是,我不确定如何解决该问题。

将null值应用于字符串是可行的,但是如果
((Excel.Range)worker.Cells[currentRow,1]).Value2
为空,则它没有函数ToString()不是函数,因此尝试执行它不起作用。它是否说明它是什么类型的异常?因为可能有更大的问题…

关于上述帖子(我没有足够的声誉对此发表评论)


为了帮助其他迷失的灵魂,我增加了这篇文章,只想补充:

如果(((Excel.Range)工作表.Cells[currentRow,1]).Value2!=null){…}.
–Sylvain 2月16日15日21:07

我有一个问题并使用了它,但发现,至少在我的情况下,我将它改为:

if (excelWorksheet.Cells[row, column].Value2 != null)
{
  return ((Excel.Range)excelWorksheet.Cells[row, column]).Value2.ToString();
}
return "No data";

至少在我的特殊情况下是这样的。如果创建了错误,Excel.Range部分就出现了。

您的变量名似乎很奇怪。
?不可见Bob,完全的异常是“异常:无法对空引用执行运行时绑定”。不可见Bob,当我看到您对函数ToString()的注释时我决定稍微修改一下代码现在是“dateCol”是一个double,我只检查double==null是否有效。我仍然不知道如何用字符串检查单元格,所以如果你能想出一个解决方案,我将用我的程序测试它。谢谢,Jessef为了帮助其他迷失的灵魂,我增加了这篇文章,只添加:
if((Excel.Range)sheet.cells[currentRow,1]).Value2!=null){…}