使用C#在Excel中查找表格边界

我正在尝试在C#中创build一个读取Excel文件的程序,将信息存储在内存中,然后有能力对这些信息进行计算。

现在,我能够读取信息,虽然我硬编码有多less行和列存在。 问题是,我可能会得到一个Excel工作表,其中包含一个2乘2表和另一个Excel工作表是500×300表。 我试图创build一个方法,通过查找“date”列和标题列中的第一个NULL单元格,找出表的边界是什么。

我find了一些看起来像Convert.ToString((object)dateCol)==“”的代码来尝试find第一个NULL单元格。 不幸的是(在一个if语句中)这段代码似乎是将所有的单元都定位到NULL。 同样的问题发生,如果我试图做一个直接的比较(如果(dateCol == null))。

谢谢,杰西

我得到了它的工作。 这是对好奇的人的代码。

public static void findingTableBounds() { for (int column = 1; column < currentRow; column++) { double? dateCol; dateCol = ((Excel.Range)workSheet.Cells[currentRow, 1]).Value2; if (dateCol == null) { Console.WriteLine("Total Row: {0}", totalRow); currentRow = 2; } else { currentRow++; totalRow++; } } for (int row = 1; row < currentCol; row++) { double? headerRow; headerRow = ((Excel.Range)workSheet.Cells[1, currentCol]).Value2; if (headerRow == null) { Console.WriteLine("Total Column: {0}", totalCol); currentCol = 2; } else { currentCol++; totalCol++; } } } 

注意我使currentRow和currentCol等于2,以便我可以开始读取表中的值,一旦我find了尺寸。 这样做不是完全必要的,你可以很容易地使用其他variables,但是我决定稍后使用这些variables。

更新在其他编码器的帮助下,我得到了一些VB代码,可以自动查找表的最后一行。 代码如下:

 Dim totalRow As Integer totalRow = Range("A1").End(xlDown).Row 

看到这是如何在VB中的方法,这让我觉得有可能在C#中的方法做同样的事情…我只是不知道他们是什么。 无论如何,“End”方法也可以用于查找左边界,上边界和右边界,Row方法似乎提取当前在Excel中的光标所在的行(这里光标跳转到最后一行,因为End方法)

杰西