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成功!');
}
});

浙公网安备 33010602011771号