闲聊几句
平时在学校做作业的时候,有关Excel表格导出的功能也有实现过,只不过是使用了第三方的开源前端网页之类的,比如说 layui 、bootstrap 之类的。这种前端模板,我们只要遵循它要求的数据接口,在后端返回指定的数据格式即可。但现在有需求要自己完成一个Excel表格的导出技术,这时候就只能自己使用别人的开源技术来实现了。
1. 所用技术
ExcelJS : 官方中文文档链接 https://github.com/exceljs/exceljs/blob/HEAD/README_zh.md#xlsx
2. 安装 ExcelJS
通过指令:npm install exceljs
即可完成exceljs的安装。
3. 快速上手
官方文档中关于Exceljs的各个API几乎都有实例,不过却缺少了一个快速入门教程。在硬啃完官方文档后,我总结出来完成一个export表格导出的大概步骤:
- 导入exceljs到项目中
- 创建一个工作簿
- 在工作簿中添加表格
- 往表格中添加表头元素与行元素
- 使用文件 I/O 将文件导出
那我们就来个快速上手开发案例
const ExcelJS = require('exceljs'); // 导入 exceljs 模块
async function exportExcel(jsonArray, sheetName) {
const workbook = new ExcelJS.Workbook(); // 创建工作簿
const worksheet = workbook.addWorksheet(sheetName); // 在工作簿中添加表
let colKeys = Object.keys(jsonArray[0]).map(item => ({ header: item, key: item }));
let rowData = [];
for (let item of jsonArray) {
rowData.push(item);
}
worksheet.columns = colKeys; // 往表中插入表头
worksheet.addRows(rowData); // 往表中添加行
await workbook.xlsx.writeFile('./test.xlsx'); // 导出excel文件到指定目录
}
// 模拟数据
const test = [{
'id' : 1,
'name' : 'hello excel'
}];
// 调用方法
exportExcel(test, 'testSheet').then(() => {
console.log("导出成功!");
}).catch(() => {
console.log("导出失败!");
})
这个案例就这么写完了,我们来测试一下:node test.js
运行
控制台上打印导出成功,在当前目录下能发现一个名为 test 的 xlsx 文件,打开查看,这正是我们希望导出的样式。