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

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

官方文档可以看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
导出结果示例
可以看到虽然导出了,但是上面 name 和 age 显然不是我们想要的,我们想要的是“姓名”和“年龄”,使用XLSX.utils.sheet_add_aoa可以向工作表中添加 JS 数据的数组实现标题重命名

// 向woeksheet工作表中的A1位置添加数据的数组
XLSX.utils.sheet_add_aoa(worksheet, [["姓名", "年龄"]], { origin: "A1" });

更改标题后的结果,可以看到从 A1 开始数据改变成了刚刚写的数据
更改标题后的结果

// 试试改成其他的
XLSX.utils.sheet_add_aoa(worksheet, [["姓名", "年龄"],["性别","爱好"]], { origin: "B5" });

可以看到从 B5 改变数据为上面添加的
在这里插入图片描述
也可以通过设置!cols工作表属性来设置列宽

// 改变A列的宽度为50,改变B列宽度为100
worksheet["!cols"] = [ { wch: 50 },{wch:100} ];

更改列宽后的结果
更改列宽后的结果
总的来说比之前写的乱七八糟的更简单易懂了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值