vue exceljs json数据转excel

news/2024/7/21 4:25:17 标签: json, excel

json数据转excel

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

答案是:当然可以

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

直接看效果:json格式化

一、下载安装

yarn add exceljs;

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

"dependencies": {
    "exceljs": "^4.3.0",
  },

二、使用

1、引入插件;

import ExcelJS from "exceljs";//直接使用

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

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

直接看代码:-

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();
      });
    },

http://www.niftyadmin.cn/n/5291093.html

相关文章

Jenkins——在流水线管道中使用指定的JDK

通过在tools下来指定JDK stage(Build) {tools {jdk "JDK8u231"}steps {sh /var/jenkins_home/tools/apache-maven-3.6.3/bin/mvn package} }JDK8u231是在全局配置下配置过的JDK

猫冻干猫粮哪个牌子质量好安全性高?推荐五款好的冻干猫粮牌子

冻干猫粮作为主食喂养的高蛋白高营养的健康饮食方式。冻干猫粮可以帮助猫咪摄入更多的水分,因为冻干是高蛋白质的食物,当猫咪吃了冻干猫粮后,会感到口渴,从而更主动地去喝水。对于那些不喜欢喝水的猫咪,可以将冻干复水…

FreeBSD下安装Jenkins(软件测试集成工具)记录

简要介绍Jenkins 简而言之,Jenkins 是领先的开源自动化服务器。它使用 Java 构建,提供了 1,800 多个插件来支持几乎任何事情的自动化,因此人类可以将时间花在机器无法完成的事情上。 主要目的: 持续、自动地构建/测试软件项目。…

项目管理含义

项目定义 为达到特定目的,使用一定资源,在确定的期间内,为特定发起人而提供独特的产品、服务或成果而进行的一次性努力 项目目标 分类 成果性目标 :满足客户要求的产品、系统、服务或者成果 约束性目标:考虑时间、成…

Ubuntu18.04安装GTSAM库并验证GTSAM是否安装成功(亲测可用)

在SLAM(Simultaneous Localization and Mapping)和SFM(Structure from Motion)这些复杂的估计问题中,因子图算法以其高效和灵活性而脱颖而出,成为图模型领域的核心技术。GTSAM(Georgia Tech Smo…

从递归到记忆化搜索再到动态规划|单词拆分、最长递增子序列

从递归到记忆化搜索再到动态规划|单词拆分、最长递增子序列 根据递归判断出需要用数组保存已经计算过的内容,采用记忆化搜索方式,推算出递推公式,实现动态规划。 模板代码 递归 import javax.management.loading.MLetMBean; import java.…

Zblog主题模板:资讯博客主题Sixth SEO收录好 排名好

zblog主题模板:资讯博客主题Sixth SEO收录好 排名好 资讯博客主题Sixth SEO收录好 排名好主要是以文字内容为主导,将页面的设计杂乱的图片和元素进行最小化或者去除,从而使整个页面更加简洁、清晰,突出信息的呈现。 下面介绍一下z…

GPT Zero 是什么?

from https://openaigptguide.com/gptzero/ 在人工智能技术飞速发展的今天,人们对于文字内容的准确性和可信度要求越来越高。例如在学术研究领域,防止抄袭和造假是非常重要的。而对于普通用户而言,辨别哪些内容是由人工智能生成的&#xff0…