Excel Aspose CheckCell与Aspose工作表。单元格[r,c]

Excel Aspose CheckCell与Aspose工作表。单元格[r,c],excel,aspose-cells,Excel,Aspose Cells,我的excel有数百万条记录(约110万条),当我尝试使用工作表逐单元格读取时,单元格[行,克隆]速度非常慢 相反,如果我使用,WorkSheet.Cells.CheckCell(行、列)性能非常好 请告诉我这两个API的工作表之间的区别。单元格。CheckCell()是检查单元格是否存在的最正确方法 如果单元格不存在,CheckCell方法将不会实例化该单元格。另一方面,如果单元[r,c]不存在,它将实例化该单元 这意味着 CheckCell可以返回null或cell对象 但是Cells[r,

我的excel有数百万条记录(约110万条),当我尝试使用工作表逐单元格读取时,单元格[行,克隆]速度非常慢

相反,如果我使用,WorkSheet.Cells.CheckCell(行、列)性能非常好


请告诉我这两个API的工作表之间的区别。单元格。CheckCell()是检查单元格是否存在的最正确方法

如果单元格不存在,CheckCell方法将不会实例化该单元格。另一方面,如果单元[r,c]不存在,它将实例化该单元

这意味着

CheckCell可以返回null或cell对象

但是Cells[r,c]永远不会返回null,并且总是返回cell对象

由于Cells[r,c]将始终返回cell对象,如果它不存在,它将创建它,这就是为什么它会影响性能。如果要在不创建新单元格的情况下迭代工作表中的所有现有单元格,请使用worksheet.cells.GetEnumerator()方法

请参考以下示例代码、注释和控制台输出

C#

更新-1

请参阅以下示例代码、注释和控制台输出。它说明了GetEnumerator()方法同时返回非空单元格和空单元格

C#

控制台输出

True
False
A4
B6
C8
D10

注意:我是Aspose的开发者传道者

谢谢。GetEnumerator确实有效,但是.my Excel可以在现有数据行中包含空单元格。我需要将excel中完全相同的数据复制到SQL表中。如果使用此方法,这些空单元格将被忽略。在使用GeQueRealToAPI时,是否有任何工作空间考虑空单元格。请在答复中检查更新。它解释了GetEnumerator()方法也返回空单元格。谢谢
//Create a workbook
Workbook wb = new Workbook();

//Access first worksheet
Worksheet ws = wb.Worksheets[0];

//Create empty cells
//Cell A4, B6, C8 and D10 all are empty
var o = ws.Cells["A4"];
o = ws.Cells["B6"];
o = ws.Cells["C8"];
o = ws.Cells["D10"];

//Get cells enumerator
var i = ws.Cells.GetEnumerator();

//Iterate all cells
while(i.MoveNext())
{
    Cell cell = i.Current as Cell;

    //Print cell name
    Debug.WriteLine(cell.Name);
}
A4
B6
C8
D10