10

我检查了一些在线资源,也许我是盲人,但我还没有找到答案。

我正在上传一个文件,将其转换为流,并将其输入 SpreadSheetGear。现在,我需要遍历每一行并读取数据(这很好)。到目前为止,这是我的代码:

IWorkbook wb = Factory.GetWorkbookSet().Workbooks.OpenFromStream(file.InputStream);
IWorksheet ws = wb.ActiveWorksheet;
IRange cells = ws.Cells;

for (int i = 2; i <= cells.RowCount; i++)
{
    //Code for every row
    for (int x = 1; x <= cells.ColumnCount; x++)
    {
         //Code for every column
    }
}

这是问题所在:cells.RowCount 等于1048576,这显然是 Excel 行数的上限。是否有调用 SpreadSheetGear 来返回有数据的行数?我不能使用固定数量,因为提供的电子表格可能有 500 到 2,000 行。

我知道 SpreadSheetGear 可能没有被广泛使用,但我想我还是会在这里碰碰运气。

干杯!

编辑 :

在有人说使用 while 循环之前,一行可能是空的,因此检查空字符串有点麻烦。

4

1 回答 1

11

回答了我自己的问题,总是这样。

无论如何,最终发现IWorksheet.UsedRangewhich 只返回使用过的单元格。

于 2011-06-28T15:56:10.983 回答