如何使用C#快速写入大型Excel文件?现在很慢

时间:2017-12-05 14:16:23

标签: c# excel

我有一个程序来编写一个大的excel文件的单元格。(大约40兆字节)。

我发现即使只是一个只写一个细胞的动作,它也很慢。 这就是我为我的项目所做的事情。

Excel.Workbook apoWorkBook = _Excel.Workbooks.Open(apo);
Excel.Worksheet apoWorkSheet = apoWorkBook.Worksheets[1];
Excel.Range apoRange = apoWorkSheet.UsedRange;

然后当我要写这样一个单元格时:

apoRange.Cells[target_row, 23].Value2 = "Value"; // ( Repeats in different rows and columns )

花费大约20秒或更长时间来完成这一行源代码。

但我有很多相同的代码可以这样写。这将耗费大量时间来完成它。

我做了一个实验来写一个小的空excel文件,它只使用了大约<这样做0.1秒。

我认为写一个大的excel文件非常慢,因为它类似于每次写入单元格后程序保存文件。

在BIG excel文件中写入的最快方法是什么?它可以就像将所有值放在单元格上,然后立即保存。

请帮助,谢谢!

1 个答案:

答案 0 :(得分:3)

您可以尝试关闭自动重新计算

set Application.Calculation = xlCalculationManual

可能会有所帮助,但互操作很慢,所以怀疑差异会很大。

您是否考虑过编写csv文件,然后在最后打开它?

甚至可以编写csv,然后使用interop进行格式化,如果重要的话。