xlsx-export-9
v1.0.0
Published
A Node.js package for exporting data to xlsx
Downloads
4
Readme
xlsx-export-9
[![Test coverage][codecov-image]][codecov-url]
A Node.js library for exporting large amounts of data to xlsx files, supporting page reading and different data splitting methods, based on node-xlsx.
Install
$ npm i xlsx-export-9 --save
Usage
'use strict';
const xlsxExport = require('xlsx-export-9');
const raws = [{ name: 'xxx', sex: 'male', job: 'programer' }];
const options = {
tableLimit: 10000,
readLimit: 1000,
headers: [ 'name', 'sex', 'job' ],
splitType: 'file',
fileName: 'sample',
};
xlsxExport(async (offset, limit) => {
const datas = [];
const min = Math.min(offset + limit, raws.length);
for (let i = offset; i < min; i++) {
const raw = raws[i];
datas.push([ raw.name, raw.sex, raw.job ]);
}
return datas;
}, options);
More usage can be found in test.js
xlsxExport(getData, options)
- /getData/ is an asynchronous function that accepts two parameters, offset and limit, and returns a two-dimensional array
- /options/ is an object that determines how to export data to a file
- Return a Promise object
选项说明
| 选项 | 默认值 | 含义 | |:----|:-----|:----| | offset | 0 | Initial offset | | count | 0 | Maximum data acquisition amount, when it is 0, it means that the acquisition is complete | | tableLimit | 50000 | Maximum number of rows in a single sheet | | readLimit | 1000 | Number of data obtained at a time | | headers | null | The header, which can be a string array or null | | splitType | 'file' | Split mode,'file' means split by file,'sheet' means split by sheet | | splitName | (name, index) => name + '_' + index | Function to calculate the name of a table or file after splitting | | sheetName | 'Sheet' | Sheet name | | fileName | 'Export' | File name | | output | async (file, buffer) => await fs.writeFile(file + '.xlsx', buffer) | Output function | | enableEmptyFile | false | Whether to allow empty files, if not, the xlsx file will not be generated when the data is empty |
Unit tests
npm test