uniapp和vue如何使用SheetJS导出excel?

uniapp和vue如何使用SheetJS导出excel?

SheetJS中文文档详解

一、SheetJS是什么

SheetJS是一款适用于浏览器和Node.js的开源电子表格解析库。

与其他电子表格解析库相比,SheetJS拥有强大的电子表格解析功能,即使电子表格很大,也可以轻松处理。

同时,SheetJS支持大量的电子表格格式,如Excel、CSV、OpenDocument等。

二、SheetJS的安装

使用SheetJS需要先将其安装到项目中。安装方法有两种:可以通过npm安装,也可以直接下载文件。

通过npm安装SheetJS:

sh 复制代码
npm install xlsx

直接下载SheetJS,可以在官网(https://sheetjs.com)中下载压缩包,或者使用CDN直接引入。

js 复制代码
<!--使用CDN-->
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>

附官网github链接:https://github.com/SheetJS/sheetjs

以及官网文档:https://docs.sheetjs.com/docs/

三、SheetJS的使用

下面是将JSON数据写入到Excel表格中的示例:

js 复制代码
/* 生成数据 */
var data = [
  { name: '小明', age: 20, gender: '男' },
  { name: '小红', age: 21, gender: '女' },
  { name: '小刚', age: 22, gender: '男' }
];
/* 将JSON数据转化为工作簿 */
var worksheet = XLSX.utils.json_to_sheet(data);
/* 生成Excel文件 */
var workbook = XLSX.utils.book_new();
/* 将工作簿添加到工作簿集合中 */
XLSX.utils.book_append_sheet(workbook, worksheet, 'SheetJS');
/* 导出Excel文件 */
XLSX.writeFile(workbook, '文件名.xlsx');

上面的代码中,SheetJS使用XLSX.utils.json_to_sheet()将JSON数据生成工作簿,使用XLSX.utils.book_new()生成新的工作簿集合,并将工作簿通过XLSX.utils.book_append_sheet()添加到工作簿集合中,最后通过XLSX.writeFile()导出Excel文件。

附:导出excel的表头修改

貌似SheetJS并未直接提供表头的显示修改,默认显示data的"name","age","gender"字段,如需要显示"姓名","年龄","性别",需要自己将data数据转换,以下是博主写的转换方法:

js 复制代码
var data = [{ name: '小明', age: 20, gender: '男' }, { name: '小红', age: 21, gender: '女' }];
var header = {
	name: '姓名',
	age: '年龄',
	gender: '性别'
};
data = data.map(item => {
	let obj = {};
	for (let key in item) {
		if (header[key]) {
			obj[header[key]] = item[key];
		} else {
			obj[key] = item[key];
		}
	}
	return obj;
});

效果如:

复制代码
姓名	年龄	性别
小明	20	男
小红	21	女
小刚	22	男

四、SheetJS的更多用法

更多api方法:

js 复制代码
aoa_to_sheet //将JS数据数组转换为工作表。
json_to_sheet //将JS对象数组转换为工作表。
table_to_sheet //将DOM表元素转换为工作表。
sheet_add_aoa //将JS数据数组添加到现有工作表中。
sheet_add_json //将JS对象数组添加到现有工作表中。
sheet_add_dom //将DOM表元素中的数据添加到现有工作表中
sheet_to_json //将工作表对象转换为JSON对象数组。
sheet_to_csv //生成分隔符分隔的值输出。
sheet_to_txt //生成UTF16格式的文本。
sheet_to_html //生成HTML输出。
sheet_to_formulae //生成公式列表(具有值回退)。
相关推荐
一 乐5 小时前
人口老龄化社区服务与管理平台|基于springboot+vue的人口老龄化社区服务与管理平台(源码+数据库+文档)
java·数据库·vue.js·spring boot·论文·毕设·人口老龄化社区服务与管理平台
喵个咪6 小时前
基于 Nuxt 4 的现代 Headless CMS 前端:架构深度解析与二次开发指南
前端·vue.js·nuxt.js
搬砖的小码农_Sky7 小时前
Excel批量复制全攻略:从单列单行到高级场景
excel·人机交互
专注VB编程开发20年7 小时前
淘宝上架销售技巧:Excel管理系统开发 / VBA / ERP / OA办公管理
java·数据库·excel
he___H8 小时前
B、B+树和vue部分知识
数据结构·vue.js·b树
书中枫叶8 小时前
我用 Vue3 写了一个 Chrome 步骤录制插件:自动截图、本地存储、一键导出教程
前端·vue.js
叶落阁主8 小时前
Vue3 中如何设计一套好用的 Icon 和 IconPicker 组件
前端·vue.js·icon
kungggyoyoyo8 小时前
从0开发一套geo优化软件:数据模型与API设计
前端·vue.js·后端
爱喝水的鱼丶8 小时前
SAP-ABAP:SAP 简单报表输出开发系列(共6篇) 第五篇:SAP 报表多格式输出:Excel/PDF 批量导出功能实现
学习·性能优化·pdf·excel·sap·abap
tedcloud1239 小时前
codegraph部署教程:构建代码库语义分析环境
服务器·人工智能·word·excel