一、安装xlsx
执行命令:npm i xlsx file-saver --save
二、报错及解决
使用时:import XLSX from "xlsx";
发现如下报错信息
报错原因:xlsx版本不兼容。
解决也很简单:
1)先移除已安装的xlsx: npm uninstall xlsx
2)安装低版本:npm i xlsx@0.17.0
三、编写公共方法
// exportExcel.js
import {
saveAs } from "file-saver";
import XLSX from "xlsx";
function datenum(v, date1904) {
if (date1904) v += 1462;
const epoch = Date.parse(v);
return (epoch - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);
}
function sheet_from_array_of_arrays(data) {
let ws = {
};
let range = {
s: {
c: 10000000,
r: 10000000
},
e: {
c: 0,
r: 0
}
};
for (let R = 0; R != data.length; ++R) {
for (let C = 0; C != data[R].length; ++C) {
if (range.s.r > R) range.s.r = R;
if (range.s.c > C) range.s.c = C;
if (range.e.r < R) range.e.r = R;
if (range.e.c < C) range.e.c = C;
let cell = {
v: data[R][C]
};
if (cell.v == null) continue;
const cell_ref = XLSX.utils.encode_cell({
c: C,