vue2使用xlsx依赖导出excel并封装组件
1. 安装
npm install xlsx file-saver --save
2. 简单封装
import * as XLSX from 'xlsx';
import { saveAs } from 'file-saver';
export function exportExcel(data, fileName) {
return new Promise((resolve, reject) => {
if (!data || !data.length) {
return reject(new Error('No data to export'));
}
try {
const worksheet = XLSX.utils.json_to_sheet(data);
const workbook = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });
const blob = new Blob(
[excelBuffer],
{ type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }
);
saveAs(blob, `${fileName || '数据表'}.xlsx`);
resolve();
} catch (error) {
reject(error);
}
});
}
3. 调用
使用时传入已处理好的数据,这是一个数组,数据每个值是个对象,对象的属性会用在第一行作为名称,然后按顺序每一行是具体的值。
比如
[
{ name: '大猫', age: 3 },
{ name: '小猫', age: 1 },
]
4. 解说
直接去npm上看下xlsx使用方法。
求关注 |
---|
![]() |