ExcelJS 将JSON数组转换成为Excel文件 / JSON转换成为XLSX / 网页导出Excel表格

闲聊几句

平时在学校做作业的时候,有关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表格导出的大概步骤:

  1. 导入exceljs到项目中
  2. 创建一个工作簿
  3. 在工作簿中添加表格
  4. 往表格中添加表头元素与行元素
  5. 使用文件 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 文件,打开查看,这正是我们希望导出的样式。
在这里插入图片描述

4. 完成一个完整的Excel导出工具的封装,从网页点击导出,会下载到下载目录中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值