vue exceljs json数据转excel

json数据转excel

有时候我们会遇到这样一个需求,就是将数据转成excel下载,这一般都是由后端来处理,使用插件poi轻松搞定。如果只有少量数据,那么能不能避免调用后端接口,前端直接处理呢?

答案是:当然可以

使用exceljs excel专用插件来实现前端json数据转成excel文件并进行下载。

直接看效果:json格式化

一、下载安装

javascript 复制代码
yarn add exceljs;

版本,可以安装最新版,不过推荐下面版本,不会出现问题:

javascript 复制代码
"dependencies": {
    "exceljs": "^4.3.0",
  },

二、使用

1、引入插件;

javascript 复制代码
import ExcelJS from "exceljs";//直接使用

完事之后,接下来就是具体应用了

三、将json数据写入excel并导出excel

直接看代码:-

javascript 复制代码
exportExcel() {
      const workbook = new ExcelJS.Workbook();
      const worksheet = workbook.addWorksheet("Sheet1");//创建工作簿和工作sheet
      let json = this.getJSON();//这里是从方法中取到json,换成自己的数据即可
      if (Array.isArray(json)) {//判断json是否是数组,如果是数组,则进行遍历
        let title = [];
        for (let key in json[0]) {
          title.push(key);
        }
        worksheet.addRow(title);
        json.forEach((item, index) => {
          let v = [];
          for (let key in item) {
            v.push(item[key]);
          }
          worksheet.addRow(v);
        });

      } else {//非数组,直接填入工作sheet
        let title = [];
        for (let key in json) {
          title.push(key);
        }
        worksheet.addRow(title);
        let v = [];
        for (let key in json) {
          v.push(json[key]);
        }
        worksheet.addRow(v);
      }
      //开始导出,主要type类型,要设置为excel对应的格式
      workbook.xlsx.writeBuffer().then((buffer) => {
        const blob = new Blob([buffer], {
          type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
        });
       const url = URL.createObjectURL(blob);
        const link = document.createElement("a");
        link.href = url;
        link.download = "data.xlsx"; // 下载文件名
        link.click();
      });
    },
相关推荐
2501_930707782 小时前
使用 C# 代码读取或删除 Excel 文档属性
excel
hikktn3 小时前
Excel 日期格式统一治理:从“显示不全“到“自动兼容“的完整方案
windows·python·excel
PixelBai4 小时前
JSON压缩使用教程:从入门到精通
json
霸道流氓气质5 小时前
Spring Boot 大数据量 Excel 导入导出功能实现指南
spring boot·后端·excel
霸道流氓气质5 小时前
Java 单元测试生成大量 Excel 测试数据实战指南
java·单元测试·excel
IT WorryFree6 小时前
FortiGate常用资产 OID 清单,配套 Excel 台账模板字段
网络·人工智能·excel
MyFreeIT6 小时前
Excel Enable Content
excel
E_ICEBLUE6 小时前
将 Excel 表格插入 Word 文档的三种实用方案(Python 自动化)
python·word·excel
nexustech6 小时前
simplejson:Python JSON 处理的备用引擎
开发语言·python·其他·json
俊哥工具6 小时前
027免费开源硬盘检测工具,一键查看健康度,杜绝数据丢失
pdf·电脑·word·excel·音视频