我有一个程序来编写一个大的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文件中写入的最快方法是什么?它可以就像将所有值放在单元格上,然后立即保存。
请帮助,谢谢!
答案 0 :(得分:3)
您可以尝试关闭自动重新计算
set Application.Calculation = xlCalculationManual
可能会有所帮助,但互操作很慢,所以怀疑差异会很大。
您是否考虑过编写csv文件,然后在最后打开它?
甚至可以编写csv,然后使用interop进行格式化,如果重要的话。