前端自定义导出excel内容(xlsx插件用法)
月下脆竹書閣 2024-08-07 14:33:02 阅读 80
前端自定义导出excel内容(xlsx用法)
1.下载安装xlsx插件2.新建xlsx.js文件,放在utils文件夹下3.页面中使用
1.下载安装xlsx插件
<code>npm install xlsx -D
2.新建xlsx.js文件,放在utils文件夹下
// 下载excel功能
import XLSX from 'xlsx'
/**
* @param dataList 表格数据内容 array
* @param fileName 文件标题。必须以 .xlsx结尾
*/
export const downloadXlsx = (dataList, fileName) => { -- -->
const stringToBuff = str => {
let buf = new ArrayBuffer(str.length)
let view = new Uint8Array(buf)
for (let i = 0; i !== str.length; ++i) {
view[i] = str.charCodeAt(i) & 0xff
}
return buf
};
// 创建表格
let workbook = XLSX.utils.book_new();
let worksheet = XLSX.utils.aoa_to_sheet(dataList);
XLSX.utils.book_append_sheet(workbook, worksheet);//第三个参数是sheet名称
// 创建二进制对象写入转换好的字节流
let xlsxBlob = new Blob(
[
stringToBuff(
XLSX.write(workbook, {
bookType: 'xlsx',
bookSST: false,
type: 'binary'
})
)
],
{ type: '' }
);
const a = document.createElement('a');
// 利用URL.createObjectURL()方法为a元素生成blob URL
a.href = URL.createObjectURL(xlsxBlob) ;// 创建对象超链接
a.download = fileName
a.click()
}
3.页面中使用
import { downloadXlsx } from "/utils/xlsx";
//自定义导出
handelExportEvent() {
//this.tableData表格数据
if (!this.tableData || this.tableData.length == 0) {
this.$message.error("当前没有需要导出的数据,请重新搜索后再打印!");
return;
}
let datalist = []; //导出表格表头
datalist.push([
"姓名",
"证件号",
]);
this.tableData.forEach((item, index) => {
datalist.push([
item.patientName,
item.idcardNo,
]);
});
//导出插件使用
downloadXlsx(datalist, "xxx.xlsx");
}
文章出处
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。