FileSaver+xlsx 表格下载为excel

这篇博客介绍了如何在Vue项目中结合ElementUI实现表格数据导出为Excel文件。首先,你需要下载FileSaver.js和SheetJS的js-xlsx库,并将它们放入项目的相应目录。接着,在HTML中引入这两个库的JS文件。然后,定义一个`exportData`方法,该方法使用SheetJS的`table_to_book`和`write`函数将表格转换并写入Excel格式。最后,利用FileSaver.js的`saveAs`方法保存生成的Excel文件。确保在表格元素上设置`id=exportable`以便正确选取表格进行导出。

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

安装依赖形式,参考 vue+elementUI 表格下载为excel

1. 下载地址

FileSaver.js
SheetJS js-xlsx

下载后,分别从 dist 文件夹下复制出以下两个文件,放在相应目录下

1.引入js

<script lang="javascript" src="js/xlsx.full.min.js"></script>
<script src="js/FileSaver.min.js" charset="utf-8"></script>

2.添加方法

exportData() {
	var xlsxParam = { raw: true };
	var wb = XLSX.utils.table_to_book(document.querySelector('#exportable'),xlsxParam);
	var wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'array' })
	try {
		saveAs(new Blob([wbout], { type: 'application/octet-stream' }), '薪资明细.xlsx')
	} catch (e) { if (typeof console !== 'undefined') console.log(e, wbout) }
	return wbout
},

3.添加id

<el-table id="exportable" ref="table" :height="tableHeight" highlight-current-row  v-loading="loading" :data="tableData" >

Vue3中使用xlsx-style来冻结单元格,你可以按照以下步骤进行操作: 1. 首先,安装xlsx-style和file-saver依赖: ```shell npm install xlsx-style file-saver ``` 2. 在Vue组件中引入xlsx-style和file-saver: ```javascript import XLSX from 'xlsx-style' import FileSaver from 'file-saver' ``` 3. 创建一个冻结单元格的函数,并在需要冻结的地方调用该函数: ```javascript export default { methods: { freezeCell() { // 创建一个工作簿 let wb = XLSX.utils.book_new() // 创建一个工作表 let ws = XLSX.utils.aoa_to_sheet([ ['Header 1', 'Header 2', 'Header 3'], ['Data 1', 'Data 2', 'Data 3'], ['Data 4', 'Data 5', 'Data 6'] ]) // 冻结第一行和第一列 ws['!freeze'] = 'A2' // 将工作表添加到工作簿 XLSX.utils.book_append_sheet(wb, ws, 'Sheet1') // 将工作簿转换为二进制数据 let wbout = XLSX.write(wb, { bookType: 'xlsx', type: 'binary' }) // 创建一个Blob对象并保存文件 FileSaver.saveAs(new Blob([this.s2ab(wbout)], { type: 'application/octet-stream' }), 'example.xlsx') }, s2ab(s) { // 将字符串转换为ArrayBuffer对象 let buf = new ArrayBuffer(s.length) let view = new Uint8Array(buf) for (let i = 0; i < s.length; i++) { view[i] = s.charCodeAt(i) & 0xFF } return buf } } } ``` 4. 在Vue模板中添加一个按钮,并调用冻结单元格的函数: ```html <template> <div> <button @click="freezeCell">冻结单元格</button> </div> </template> ``` 这样,当你点击"冻结单元格"按钮时,会生成一个带有冻结单元格的Excel文件,并自动下载到本地。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值