我需要通过网络系统在 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;
即使我只填充几百行,也需要大约 10 秒。有没有什么方法可以加快这个过程,比如在内存中创建整个工作表而不是逐个单元格地填充?
最佳答案
先定义一个object[,]的数组。您将不再看到时间延迟,无论它有多大。顺便说一句,数组也可以保存公式。
例如我在我的项目中使用的类似这个功能:
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;
}
关于javascript - 提高创建 Excel 工作表的速度(以编程方式),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4013539/