Node.js写巨大数据量Excel
问题
最初我采用的是node-xlsx框架,每一个工作表50000行4列,100个工作表,如此大的数据使用node-xlsx写入,会溢出内存。在网上百般查找,没有什么有用的方案。最后查了下目前常用的写excel的框架,发现了一个框架提供了流式的写入方法,该框架就是exceljs
exceljs框架优势
- 功能齐全
- 官方提供中文文档,地址
- 支持流式读写
- …优势很多,在此不再赘述
exceljs框架使用
- 安装
npm install exceljs
- 引用
const ExcelJS = require('exceljs');
使用这种发法引用的话,Node.js版本高于10的话会报如下错误
throw new Error(‘For node versions older than 10, please use the ES5 Import: https://github.com/exceljs/exceljs#es5-imports’);
^
Error: For node versions older than 10, please use the ES5 Import: https://github.com/exceljs/exceljs#es5-imports
因此Node.js版本高于10的话应该用es5的方法引用,按照官方文档的说法,还需要添加core-js 和 regenerator-runtime这两个依赖。
安装这两个依赖
npm install core-js
npm install regenerator-runtime
高版本Node.js的引用方法
require('core-js/modules/es.promise');
require('core-js/modules/es.string.in