javascript - 提高创建 Excel 工作表的速度(以编程方式)

标签 javascript asp.net excel export-to-excel

我需要通过网络系统在 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/

相关文章:

javascript - 如何根据浏览器选项卡设置cookie

asp.net - 以 %20 结尾的 URL 出现问题

c# - 将 HttpConfigurationExtensions 添加到 ASP.NET 项目

excel - 如何在 Excel 或 apache POI 中输入 "format as table"?

asp.net-mvc-3 - 将电子表格嵌入 ASP.NET MVC 3 页面

javascript - 优化 javascript/coffeescript 中的视差滚动

javascript - 点击事件监听器没有反应

javascript - Vue Js - 单击触发方法时从表中删除 TR 祖父节点

c++ - IIS-部署ASP.NET网站和数据库连接

vba - Excel VBA 中的 If then ElseIF 语句