前端导出excel表格修改样式
原用法(缺点:不能修改样式) => 使用xlsx导出
改进方法 => 使用 xlsx-js-style
npm install xlsx-js-style -S
import FileSaver from "file-saver";
import XLSX from "xlsx-js-style";
handleExport() {
var wb = XLSX.utils.table_to_book(
document.querySelector(".exportTable"),
{ raw: true }
);
this.setExlStyle(wb.Sheets["Sheet1"]);
var wbout = XLSX.write(wb, {
bookType: "xlsx",
bookSST: true,
type: "array",
});
try {
FileSaver.saveAs(
new Blob([wbout], { type: "application/octet-stream;charset=utf-8" }),
"表格名称.xlsx"
);
} catch (e) {}
return wbout;
},
setExlStyle(data) {
data["!cols"] = [{ wpx: 50 }];
for(var column = 1; column < 5; column ++){
data["!cols"].push({ wpx: 120, });
}
for (let key in data) {
if (data[key] instanceof Object) {
data[key].s = {
font: {
bold: true,
italic: false,
underline: false,
},
alignment: {
horizontal: "center",
vertical: "center",
wrapText: false,
},
border: {
},
fill: {
}
};
}
}
this.$nextTick(() => {
for (var i = 1; i < 5; i++) {
data["F" + i].s.font.color = { rgb: "409EFF" };
data["H" + i].s.font.color = { rgb: "F56C6C" };
data["I" + i].s.font.color = { rgb: "67C23A" };
data["J" + i].s.font.color = { rgb: "67C23A" };
}
});
return data;
},