node实现excel文件与JSON数据格式互转
使用node脚本处理excel,需要先安装【node-xlsx】,即【npm install node-xlsx】,写好下面脚本后,执行【node ./transferExcelToArray.js】,然后你就会在同文件夹下面发现生成了一个【array.json】文件。
1. excel转JSON文件
// excel转JSON文件 transferExcelToJSON.js const path = require('path'); var xlsx = require('node-xlsx'); const fs = require('fs'); var obj = xlsx.parse(__dirname + '/年度绩效评价表.xlsx'); // 把第一行表头去掉了 var excelObj = obj[0].data.slice(1); let list = []; excelObj.forEach(one => { let obj = { subFundTypeName: one[1], type: one[2], score: one[5], name: one[4], fundYear: one[0], }; list.push(obj); }); fs.writeFileSync(path.resolve(process.cwd(), './array.json'), JSON.stringify(list), function (error) { console.log(error); });
2.JSON转excel文件
const path = require('path'); const fs = require('fs'); const xlsx = require('node-xlsx'); let data = fs.readFileSync(path.resolve(__dirname, './array.json'), 'utf-8'); data = JSON.parse(data); let tableData = [ ["名称","分数","日期"], ...data.map(one=>{ return [one.name,one.score,one.date] }) ] //引入生成excel的依赖包 const list = [ { name: 'sheet', // 工作薄的名称 data: tableData , // [ // ['表头1', '表头2', '表头3'], // ['第1行第1列', '第1行第2列', '第1行第3列'], // ['第2行第1列', '第2行第2列', '第2行第3列'], // ] }, // 如果多个工作薄, 就是多个对象。格式如上 ]; // 使用提供的构建 xlsx 文件的方法 const buffer = xlsx.build(list); fs.writeFile('导出的excel名称.xlsx', buffer, function (err) { if (err) { console.log(err, '导出excel失败'); } else { console.log('导出excel成功!'); } });