node-xlsx
js
import fs from 'fs';
import xlsx from 'node-xlsx';//解析xlsx
const { join } = require('path');
/**
* 读取public目录下Excel文件
* @param {string} path 文件名
* @returns
*/
const ReadPublicExcel = (path) => {
const objData = xlsx.parse(join(__dirname) + '/../../public/' + path);
return objData; // objData[0].data
};
/**
* 导出Excel
* data = [ {name: 'sheet0',data: [["标题1","标题2","标题3","标题4"],[]...]} ]
* @param {Object} data excel数据
* @param {string} name 新文件名
*/
const createExcel = (data, name = "") => {
if (!name) {
name = "output " + new Date().toISOString().split('T')[0];
}
//将经过处理的数据写入新的xlsx文件中
const buffer = xlsx.build(data);
// let path = `${__dirname}/匹配完/${file.name}.xlsx`
let path = `./${name}.xlsx`
fs.writeFileSync(path, buffer, { 'flag': 'w' });
}
export default createExcel
// // 直接导出
// const data2 = [["标题1","标题2","标题3","标题4"]]
// data2.push(...[1,2,3,4,5].map((item,index)=>["列"+index,item,item,item]))
// let data = [
// {name: 'sheet0',data: data2}
// ]
// createExcel(data,"新名字")