import WriteXlsxFile from "write-excel-file";
/**
* @description Json数据导出Xlsx
* @param {Array} data JSON数据
* @param {Array} header xlsx表头 [{key:'',name:'',width:''}]
* @param {String} key column的key
* @param {String} name column的name
* @param {Number} width column的width
* @param {String} fileName xlsx文件名
**/
export const DataToXlsx = async (data, header, fileName) => {
let stmp = {
column: "",
with: 20,
value: null,
};
let SCHEMA = header.map(({ key, name, width, type }) => {
let column = Object.assign({}, stmp, {
type: type ?? String,
column: name,
width: width || 20,
value: (v) => v?.[key] ?? "",
});
return column;
});
let FILE_NAME =
fileName.lastIndexOf(".xlsx") != -1 ? fileName : fileName + ".xlsx";
await WriteXlsxFile(data, {
schema: SCHEMA,
fileName: FILE_NAME,
headerStyle: {
backgroundColor: "#f2f6fc",
fontWeight: "bold",
align: "center",
height: 20,
},
});
};