Skip to content

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,"新名字")