index.js 1.31 KB
Newer Older
李纪文's avatar
李纪文 committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
import React, { useEffect } from 'react';
import PropTypes from 'prop-types';
import ExportJsonExcel from 'js-export-excel';
import JSZip from 'jszip';

// 导出Excel表格
const ExportExcel = (props) => {
  var option = {};
  option.fileName = props.name;
  option.datas = props.content;

  var toExcel = new ExportJsonExcel(option); //new
  toExcel.saveExcel();
};
ExportExcel.defaultProps = {
  name: 'excel',
  content: [],
};

ExportExcel.propTypes = {
  name: PropTypes.string, // 下载文件名称
  content: PropTypes.array, // 下载文件内容
};

// 导出压缩Excel表格
const ExportExcelZip = (props) => {
  var option = {};
  option.fileName = props.name;
  option.saveAsBlob = true;

  option.datas = props.content;

  var toExcel = new ExportJsonExcel(option); //new
  let file = toExcel.saveExcel();

  // 压缩文件
  var zip = new JSZip();

  // 多个excel 依次加入(fileName不能相同)
  zip.file(file.name, file);

  zip.generateAsync({ type: 'blob' }).then(function (content) {
    // see FileSaver.js
    saveAs(content, `${props.name}.zip`); // 下载文件
  });
};
ExportExcelZip.defaultProps = {
  name: 'excel',
  content: [],
};

ExportExcelZip.propTypes = {
  name: PropTypes.string, // 下载文件名称
  content: PropTypes.array, // 下载文件内容
};

export { ExportExcel, ExportExcelZip };