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