node 实现excel 导出

const excelPort = require("excel-export");
const fs = require("fs");


// JSON数据(此处作为示例,JSON数据写到代码当中,实际过程中,先生成JSON文件,然后通过fs.readFile读取文件内容,然后拿读取到的数据生成Excel)
var json = [
  {
    name: "liu",
    createTime: 1597382897409,
  },
  {
    name: "liu",
    createTime: 1597382897409,
  }
]
var headers = [

  {
    title: "买家名称",
    key: "name",
  },
  {
    title: "注册时间",
    key: "createTime",
    r: (val) => {
      var date = new Date(val);

      return `${date.getFullYear()}/${date.getMonth()}/${date.getDate()}`;
    },
  },
  
];
const generateExcel = (datas = []) => {
  /**
   * 定义一个空对象,来存放表头和内容
   * cols,rows为固定字段,不可修改
   */
  const excelConf = {
    cols: [], // 表头
    rows: [], // 内容
  };
  // 表头
  excelConf.cols = headers.map((item) => {
    return { caption: item.title, type: "string" };
  });
  // 内容
  excelConf.rows = datas.map((item) => {
    var arr = [];
    headers.map((h_item) => {
      var a = item[h_item.key];
      var val = h_item.r ? h_item.r(a) : a;
      arr.push(val);
    });
    return arr;
  });
  // 调用excelPort的方法,生成最终的数据

  const result = excelPort.execute(excelConf);
  // 写文件
  fs.writeFile("./goods.xlsx", result, "binary", (err) => {
    if (!err) {
      console.log("生成成功!");
    }
  });
};

generateExcel(json);


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。