Learn about our RFC process, Open RFC meetings & more.Join in the discussion! »

table-export-zip

1.0.1 • Public • Published

table-export-zip

打包下载分割的表格,分批次获取 json 数据并转换成 csv,最终打包成一个压缩包,建议根据业务进行二次封装

Install

$ npm i -S table-export-zip

Usage

import TableExportZip from 'table-export-zip';
 
// 实例化
let app = new TableExportZip({
    zipFileName: 'fileName',
    processCallback: () => {
        console.log('下载开始');
    },
    doneCallback: () => {
        console.log('下载结束');
    },
    addFiles: (zip, done, { CSVToJSON, JSONtoCSV }) => {
        // zip:jszip的实例
        // done:结束的回调
        // CSVToJSON:csv转json的工具
        // JSONtoCSV:json转csv的工具
 
        // 测试接口
        let apiUrl = 'https://jsonplaceholder.typicode.com/posts?userId=';
 
        // 准备待请求的Promise列表
        let prArr = [];
        for (let index = 0; index < 10; index++) {
            prArr.push(fetch(apiUrl + index).then(data => data.json()));
        }
 
        // 开始并行请求
        Promise.all(prArr).then(result => {
            result.forEach((item, index) => {
                // json 转 csv,第一个参数为数据,第二参数为表头字段
                const csvData = JSONtoCSV(result, ['userId', 'id', 'title', 'body']);
                // 添加 csv 文件,可定义文件名
                zip.file(`fileName${index + 1}.csv`, csvData);
            });
            // 触发结束回调
            done();
        });
    }
});
 
// 触发下载
app.download();

Related

  • jszip - Create, read and edit .zip files with Javascript
  • FileSaver.js - An HTML5 saveAs() FileSaver implementation

License

MIT © Harvey Zack

Keywords

none

Install

npm i table-export-zip

DownloadsWeekly Downloads

1

Version

1.0.1

License

MIT

Unpacked Size

1.17 MB

Total Files

20

Last publish

Collaborators

  • avatar