提高创buildExcel表速度(编程)

我需要通过web系统在excel中生成一些报告。 我目前的代码如下(简体):

//[javascript inside .aspx page] ExcelApp = new ActiveXObject("Excel.Application"); ExcelSheet = new ActiveXObject("Excel.Sheet"); ExcelSheet.Windows(1).WindowState = 2; ExcelSheet.Application.Visible = false; for (i=1; i< [elementNumber]; i++) { ExcelSheet.ActiveSheet.Cells(i,1).Value = myXML.documentElement.childNodes(i).text; } ExcelSheet.Application.Visible = true; 

即使我只填充less量的行,大约需要10秒钟。 有没有什么办法来加速这个过程,如在内存中创build整个工作表,而不是逐个单元格地填充?

首先定义一个对象[,]的数组。 不pipe它有多大,你都不会再看到时间延迟。 顺便说一句,数组也可以保存公式。

例如像我这个项目中使用的这个函数:

  public static void AddValueArrayToSheet(_Worksheet ws, Range rangeTopLeft, object[,] values) { Range cellRange = ws.Cells.get_Range(rangeTopLeft, rangeTopLeft[values.GetUpperBound(0) + 1, values.GetUpperBound(1) + 1]); cellRange.Value = values; } 

你可以尝试禁用重新计算,看看是否有帮助

 Application.Calculation = xlCalculationManual Application.Calculation = xlCalculationAutomatic 

除此之外,这个页面还有一些好的提示,可以从excel中获得尽可能多的性能

http://www.cpearson.com/excel/optimize.htm