使用Javascript从xlsx读取大数据而不使用sheet.js或spread.js

问题描述 投票:0回答:1

该问题的简短版本是我需要一种方法来读取包含40行36列的xlsx文件。

由于我们的开发环境,Shee.js内存不足,spread.js不是一个选项,我试图做一个Rest调用来获取文件。任何超过300行的东西都会无声地失败,并且循环运行调用以重复拉X行并合并数据需要将近4分钟,这对于简单的基于Web的应用程序来说实际上并不是一个选项。

我们在SharePoint中。该页面的目的是提供一个简单的仪表板,其中包含xlsx中的数据,而无需将该数据导入列表。

javascript excel sharepoint xlsx data-processing
1个回答
0
投票

我现在遇到的解决方案是使用$ .ajax来提取各个列的asynchrouns。

我可以每ajax调用回收10,000个项目,所以我创建了一个包含列名的字符串数组,执行了一个forEach循环,它运行一个rest调用来获取该列中的所有数据(每列4个调用),然后是每个循环结束我正在增加一个数字。

一旦数字等于列数组-1,我将列拼接成单个2D数组。

它比我想要的慢,但它将时间从4-9分钟缩短到约30秒。这是因为它不是在链中进行数百次调用,而是同时进行数百次调用。

编辑:为将来想要使用它的任何人扩展此答案。

var cols = ['a', 'b', 'c', 'd', 'e', 'f'];
var data = {};
cols.forEach(function(item, I){
    data[item] = getData(item, 1, 100000);
});

显然不是代码完整,只是一个例子(我使用的是我开发的用于获取和格式化数据的库),但这是基本的想法。它将对每列而不是整个文档运行AJAX调用,从而使调用失败。

© www.soinside.com 2019 - 2024. All rights reserved.