vue3使用xlsx导出json数据为excel表格

本文介绍了如何使用SheetJS库在JavaScript中操作Excel文件,包括数据导出、标题重命名、工作表调整以及列宽设置。通过实例演示了如何将对象数组转换为带有标题的工作表,并展示了如何改进输出格式使之更易读。

官方文档可以看sheetjs

安装 xlsx

npm install xlsx

使用非常简单
在需要使用的页面引入

import * as XLSX from "xlsx";

要导出的数据需要是一个没有嵌套的对象数组
官方导出数据示例

// 随便声明一个结果
let arr=[{name:"小红",age:18},{name:"小明",age:20}]
// 创建一个新的工作簿
const workbook = XLSX.utils.book_new();
// 创建一个新的工作表
const worksheet = XLSX.utils.json_to_sheet(arr);
// 将工作表附加到工作簿,并将工作表命名为students
XLSX.utils.book_append_sheet(workbook, worksheet, "students");
// 导出工作簿,并命名导出文件名为Presidents.xlsx
XLSX.writeFile(workbook, "Presidents.xlsx");

代码示例
代码示例
导出文件结果,下面工作表名称就不截了,图片太长不好看,工作表名就是 students

Vue3使用xlsx库将表格数据导出Excel文件是一个常见的需求。首先,你需要安装`xlsx`和`vue-xlsx-export`这两个依赖。可以使用npm或yarn来安装: ```bash npm install xlsx vue-xlsx-export # 或者 yarn add xlsx vue-xlsx-export ``` 然后,在项目中创建一个组件,比如`ExportExcel.vue`,并使用以下代码示例: ```html <template> <button @click="exportToExcel">导出Excel</button> <!-- 其他表格展示代码 --> </template> <script> import XLSX from &#39;xlsx&#39;; import { exportToExcel } from &#39;vue-xlsx-export&#39;; export default { methods: { async exportToExcel() { // 假设你在data中有一个名为tableData的数组,它包含了表格数据 const data = this.tableData; // 将数据转换为XLSX可用的格式 const workbook = XLSX.utils.book_new(); const worksheet = XLSX.utils.json_to_sheet(data); // 添加工作簿信息 XLSX.utils.book_append_sheet(workbook, worksheet, &#39;Sheet1&#39;); // 将生成的工作簿保存为Excel文件 const excelBuffer = XLSX.write(workbook, { type: &#39;buffer&#39; }); // 创建下载链接 const blob = new Blob([excelBuffer], { type: &#39;application/vnd.openxmlformats-officedocument.spreadsheetml.sheet&#39; }); const url = URL.createObjectURL(blob); // 下载链接 const a = document.createElement(&#39;a&#39;); a.href = url; a.download = &#39;output.xlsx&#39;; // 设置文件名 a.click(); // 触发下载 setTimeout(() => { URL.revokeObjectURL(url); // 确保下载完成后再移除URL }, 0); }, }, }; </script> ``` 在这个例子中,点击“导出Excel”按钮会触发`exportToExcel`方法,该方法先将表格数据转化为XLSX的工作表,再将其封装成一个Blob对象并通过浏览器下载。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值