需求:给定一个xlsx表格,读取表格中的数据并转为json格式输出
需要用到node-xlsx包,所以先 npm init -y 初始化pageage.json
npm i node-xlsx -D
读取表格结构如下:
具体代码结构如下:
a.xlsx是我们需要读的表格,表格1.json,表格2.json是读取a.xlsx数据并输出json,具体实现代码如下:
const fs = require('fs');
const xlsx = require('node-xlsx');
const result = xlsx.parse('a.xlsx');
result.map(item=>{
const objKey = item.data[0];
const typeKey = item.data[1];
const newItemData = [].concat(item.data);
const newArr = newItemData.slice(2,newItemData.length-1);
const isNostr = ['array']
let xlsResArr = []
for(let k=0;k<newArr.length;k++){
const data = newArr[k]
let obj = {}
for(let i=0;i<data.length;i++){
let endStr = data[i]
if(isNostr.includes(typeKey[i])){ //数组类型转换
endStr = JSON.parse(endStr)
}
obj[objKey[i]] = endStr
}
if(Object.keys(data).length>0){ //表非空判断
xlsResArr.push(obj)
}
}
writeJson(item.name,xlsResArr)
})
function writeJson(name,data){
fs.writeFile(`${name}.json`,JSON.stringify(data),(res)=>console.log(res))
}