Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 提高创建excel工作表的速度(以编程方式)_Javascript_Asp.net_Excel_Export To Excel - Fatal编程技术网

Javascript 提高创建excel工作表的速度(以编程方式)

Javascript 提高创建excel工作表的速度(以编程方式),javascript,asp.net,excel,export-to-excel,Javascript,Asp.net,Excel,Export To Excel,我需要通过web系统在excel中生成某种报告。我当前的代码如下(简化): /[javascript inside.aspx页面] ExcelApp=新的ActiveXObject(“Excel.Application”); ExcelSheet=新的ActiveXObject(“Excel.Sheet”); ExcelSheet.Windows(1).WindowsState=2; ExcelSheet.Application.Visible=false; 对于(i=1;i

我需要通过web系统在excel中生成某种报告。我当前的代码如下(简化):

/[javascript inside.aspx页面]
ExcelApp=新的ActiveXObject(“Excel.Application”);
ExcelSheet=新的ActiveXObject(“Excel.Sheet”);
ExcelSheet.Windows(1).WindowsState=2;
ExcelSheet.Application.Visible=false;
对于(i=1;i<[elementNumber];i++)
{
Cells(i,1).Value=myXML.documentElement.childNodes(i).text;
}
ExcelSheet.Application.Visible=true;

即使我只填充几百行,也需要大约10秒。有没有什么方法可以加快这个过程,比如在内存中创建整个工作表,而不是逐个单元格填充?

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

Application.Calculation = xlCalculationManual

Application.Calculation = xlCalculationAutomatic
除此之外,本页还提供了一些很好的技巧,可以尽可能提高excel的性能


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

e、 g.类似于我在项目中使用的函数:

    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中时,我收到了空表(没有错误)。我更深入地研究了web,看起来我无法以任何简单的方式使其更快。我认为这是一个合适的解决方案,但我无法用JavaScript:-/。当我试图将对象数组分配给我的cellRange时,我得到了“';”char expected“错误,但我没有遗漏任何错误,我的索引是正确的,等等。它看起来像是带有“;”字符的东西,但是在这方面我帮不了你,JavaScript并不是我的世界数组是零基的吗?而且文本msg中没有任何公式,否则;在某些文化中是分隔符,例如德语。
    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;
    }