node-xlsx 安装: npm i node-xlsx -S
1、带条件的笛卡尔积(excel导入导出)
这个没有找到比较好的方法用Excel处理,才用代码(这个比较快)
const xlsx = require('node-xlsx')
const fs = require('fs');
//读取文件内容
var obj = xlsx.parse(__dirname + '/分析数据.xlsx');
var indArr = obj[0].data;
var orgArr = obj[1].data;
const header = ['ID', '参数1', '参数2']
const resList = [{
name: "sheet",
data: [
header,
]
}]
for (let index = 0; index < indArr.length; index++) {
const indRow = indArr[index]
for (let j = 0; j < orgArr.length; j++) {
const orgRow = orgArr[j];
if(indRow[0] === orgRow[0]) {
resList[0].data.push([...indRow, orgRow[1]])
}
}
}
console.log('文件行数:', resList[0].data.length);
//将文件内容插入新的文件中
const buffer = xlsx.build(resList);
fs.writeFile("笛卡尔积结果.xlsx", buffer, function(err) {
if (err) {
console.log(err, "保存excel出错");
} else {
console.log("写入excel成功!!!");
}
});
2、存为json
const resObj = {}
//将文件内容插入新的文件中
let str = JSON.stringify(resObj, null, "\t")
fs.writeFile('data.json', str, function(err) {
if (err) {
res.status(500).send('Server is error...')
}
})