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

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

SheetJS中文文档详解

一、SheetJS是什么

SheetJS是一款适用于浏览器和Node.js的开源电子表格解析库。
与其他电子表格解析库相比,SheetJS拥有强大的电子表格解析功能,即使电子表格很大,也可以轻松处理。
同时,SheetJS支持大量的电子表格格式,如Excel、CSV、OpenDocument等。

二、SheetJS的安装

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

通过npm安装SheetJS:

npm install xlsx

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

<!--使用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表格中的示例:

/* 生成数据 */
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数据转换,以下是博主写的转换方法:

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方法:

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 //生成公式列表(具有值回退)。
  • 7
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
element-ui-plus 是基于 Element-UI 进行扩展的Vue组件库,而 SheetJS 是一个用于处理电子表格文件的JavaScript库。要在 Vue 3 中使用 ElementUIPlus 和 SheetJS 导出 Excel,可以按照以下步骤进行操作: 1. 首先,确保已安装 ElementUIPlus 和 SheetJS 的相关依赖包。可以通过 npm 或 yarn 安装,例如: ```shell npm install element-ui-plus // 安装 ElementUIPlus npm install sheetjs // 安装 SheetJS ``` 2. 在 Vue 3 项目的入口文件中,引入 ElementUIPlus 和 SheetJS 的样式和组件。例如: ```javascript import 'element-ui-plus/lib/theme-chalk/index.css'; // 引入 ElementUIPlus 样式 import SheetJS from 'sheetjs'; // 引入 SheetJS 组件 import ElementPlus from 'element-plus'; // 引入 Element-UI 组件 import { createApp } from 'vue'; const app = createApp(App); app.use(ElementPlus); app.use(SheetJS); app.mount('#app'); ``` 3. 在需要使用导出 Excel 功能的组件中,使用 ElementUIPlus 和 SheetJS 提供的相关组件和方法。例如,使用 `el-button` 组件和 `SheetJS-core` 的 `write` 方法导出 Excel: ```vue <template> <div> <el-button @click="exportExcel">导出 Excel</el-button> </div> </template> <script> import { ref } from 'vue'; import SheetJS from 'sheetjs'; export default { methods: { exportExcel() { const data = [ [ '姓名', '年龄', '性别' ], [ '张三', 18, '男' ], [ '李四', 20, '女' ], ]; /* 使用 SheetJS 的 write 方法导出 Excel */ const workbook = SheetJS.utils.book_new(); const worksheet = SheetJS.utils.aoa_to_sheet(data); SheetJS.utils.book_append_sheet(workbook, worksheet, 'Sheet1'); SheetJS.write(workbook, 'example.xlsx'); }, }, } </script> ``` 这样,当点击 "导出 Excel" 按钮时,将会触发 `exportExcel` 方法,调用 SheetJS 的相关方法实现数据导出Excel 文件。注意,上述例子仅为示范,实际应用中需要根据具体需求进行调整。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值