表格导出

*** “祸不单行”刚写完表格导入不就表格导出的需求就来了,所以就看了下导出并实现了该功能,当然感谢框架为我们提供的遍历node-xlsx ***

后端代码

	// 需要npm安装  node-xlsx 
 // 获取表格名称
  const { name } = req.data
  // 获取表格数据
  const tableData = await BackController.translateDic(await community.getCellResidentList({cellid: '%%'}))
  // 创建工作簿
  const workbook = new ExcelJS.Workbook();
  // 设置工作簿属性
  workbook.creator = 'systemExport';
  workbook.lastModifiedBy = 'systemExport';
  workbook.created = new Date();
  workbook.modified = new Date();
  workbook.lastPrinted = new Date();
  // 创建工作表
  const worksheet = workbook.addWorksheet(name);
  // 从keyList获取表头
  const columns = []
  for (const key in keyList) {
	// 拼接表头模板
      columns.push({ header: keyList[key], key: key })
  }
  worksheet.columns = columns
  worksheet.addRows(tableData);
  const buffer = await workbook.xlsx.writeBuffer();
  res.json(BackController.dataEncapsulation(1, buffer, msg = "用户列表导出成功!", 1))

前端代码

  const buffer = Buffer.from(
          (await exportExcel({ name: '居民信息' })).data.data
        );
  // buffer转excel
  const blob = new Blob([buffer], {
    type:
      'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'
  });
  const fileName = '居民信息.xlsx';
  const link = document.createElement('a');
  link.href = window.URL.createObjectURL(blob);
  link.download = fileName;
  link.click();

Q.E.D.


远赴人间惊鸿宴,一睹人间盛世颜。