用c#编写excel的有效方法

本文关键字:有效 方法 excel 编写 | 更新日期: 2023-09-27 18:13:56

我试图使用c#生成excel以下是它的代码片段

Microsoft.Office.Interop.Excel;
.
.
.
foreach (string[] rowContents in lstOutputFileContent)
{
    for(int i = 0; i < rowContents.Length; i++)
    {
        sheet.Cells[currRow, i + 1] = rowContents[i];
    }
}

但是问题是当lstOutputFileContent包含超过50K行时,它需要很长时间才能写入(4-5分钟)。在这种情况下,是否有更好/更快的方法来编写excel,即我有字符串数组列表,我想将其写入excel。

我尝试使用OleDb,但在情况下,前几行包含较少的单元格,然后当我尝试插入行与额外的单元格它给出错误。

用c#编写excel的有效方法

如果你使用Excel 2007或更高版本,最好的选择是Open XML SDK 2.0

还可以修改当前方法。不是单独写入每个值,而是创建一个二维数组来保存所有值。然后获取相同大小的范围,并将该范围的值设置为二维数组。这样,您只需承受一个编组的COM调用的成本,而不是处理许多,许多。

您可以一次插入一行而不是一次使用Excel c#中输入特定单元格的答案中的代码

当我遇到类似的性能问题时,我想到了这个问题。

对于Excel 2002(?)或更高版本,您可以简单地以HTML格式提供电子表格内容,使用简单的表格:请参阅这里的简单示例。这将是最快的选项。