首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SheetJS/js-xlsx读取大型Excel文件?

使用SheetJS/js-xlsx读取大型Excel文件?
EN

Stack Overflow用户
提问于 2018-07-27 05:21:28
回答 2查看 6.2K关注 0票数 9

我正在使用这个包:https://www.npmjs.com/package/xlsx

然而,我可以有一些非常大的excel文件,其中可能包含一百万行。

我测试了600K行,大约是15mb的excel文件,我的代码已经在localhost上崩溃了。

有没有别的地方可以让它流进来?我知道文档说他们没有任何类型的流api,但是它谈到了缓冲?

代码语言:javascript
复制
 var reader = new FileReader();
    reader.onload = evt => {
      const bstr = evt.target.result;
      const wb = XLSX.read(bstr, { type: "binary" });
      const wsname = wb.SheetNames[0];
      const ws = wb.Sheets[wsname];
      const data = XLSX.utils.sheet_to_json(ws, { header: "A", defval: "" });
      });
    };
    reader.readAsBinaryString(this.file);
EN

回答 2

Stack Overflow用户

发布于 2018-08-05 21:10:13

当我不得不从一个非常大的excel文件(大约50MB)中读取数据时,我使用Excel Interop在后台将其转换为csv,这比从Excel文件中获取数据所需的时间更短。然后,只需通过流阅读器获取前n行。这将为您提供预览所需的数据。将这个发送到前端进行预览。这就是我会做的。

票数 2
EN

Stack Overflow用户

发布于 2019-06-26 02:46:38

尝试使用流读取器

代码语言:javascript
复制
var fs = require('fs');
var XLSX = require('xlsx');
function process_RS(stream/*:ReadStream*/, cb/*:(wb:Workbook)=>void*/)/*:void*/{
var buffers = [];
stream.on('data', function(data) { buffers.push(data); });
stream.on('end', function() {
var buffer = Buffer.concat(buffers);
var workbook = XLSX.read(buffer, {type:"buffer"});

/* DO SOMETHING WITH workbook IN THE CALLBACK */
cb(workbook);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51547676

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档