NPOI的RemoveRow非常慢

时间:2017-07-26 06:09:16

标签: performance npoi

我正在使用NPOI使用以下函数清除从给定行索引到最后一行的所有行的数据:

public void DeleteToLastRow(ISheet sheet, int firstRowIndex)
{
    int lastRowIndex = sheet.LastRowNum;
    for (int rowIndex = lastRowIndex; rowIndex >= firstRowIndex; rowIndex--)
    {
        var deletedRow = sheet.GetRow(rowIndex);
        // All rows are warrantied to be not null
        sheet.RemoveRow(deletedRow);
    }
}

然而,我每排大约有100个细胞,而这100个细胞中约有80个细胞具有一些复杂的配方。因此,删除200行需要大约8秒钟。在这种情况下,有没有办法提高性能?

大多数单元格在同一行的开头引用3或4个其他单元格。它们还引用了我不删除的工作表开头的1个固定单元格。

我正在使用.Net 4.6.2,NPOI 2.3.0,我的文件是xlsx所以我正在使用XSSF。

0 个答案:

没有答案