安装
$ npm install node-xlsx
读取Excel的xlsx文件,并写成json文件
const path = require("path");
const fs = require("fs");
const xlsx = require("node-xlsx").default;
//读取excel
const readExcel = () => {
//第一步:先构建路径 ,准备读取的excel的文件路径
let p1 = path.join(__dirname, "./stuinfo.xlsx");
//第二步:读取
let result = xlsx.parse(p1);
//第三步:得到excel的第一行数据,也就是表头
let headerRow = result[0].data.shift();
//第四步:组建成对象\
let arr = []
for (let item of result[0].data) { //遍历数据
let obj = {}
for (let i = 0; i < headerRow.length; i++) {
obj[headerRow[i]] = item[i]; //key value
}
arr.push(obj)
}
//第五步:写入一个JSON文件
let jsonSavePath = path.join(__dirname, "./stuinfo.json");
fs.writeFileSync(jsonSavePath, JSON.stringify(arr));
console.log("写入完成");
}
readExcel();
将json数据转换成excel中的数据
/**
* 生成一个excel文件
*/
const path = require("path");
const fs = require("fs");
const xlsx = require("node-xlsx").default;
const writeExcel = () => {
//第一步:先构建要读取的文件的路径
let p1 = path.join(__dirname, "./result.json");
//第二步:读取这个文件,得到buff
let buff = fs.readFileSync(p1);
let jsonStr = buff.toString();
// 将之前的buffer转成json字符串以后,再转变成对象
/** @type {Array} */
let arr = JSON.parse(jsonStr);
if (arr.length > 0) {
// 第三步:构造了工作表的对象
let excelObj = {
name: "Sheet1",
data: [] //存放表格数组
};
//第四步:得到表头
let headerRow = Object.keys(arr[0]); //["newsTitle","newsTime","newsLink","newsContent","readCount"]
excelObj.data.push(headerRow); //第一行放表头
for (let item of arr) {
excelObj.data.push(Object.values(item))
}
//第五步:生成excel
let excelBuff = xlsx.build([excelObj]); //一个xlsx可以包含多个工作表
//第六步:构建保存文件的路径
let excelSavePath = path.join(__dirname, "./result.xlsx");
//第七步:写入
fs.writeFileSync(excelSavePath,excelBuff);
console.log("生成成功");
}
}
writeExcel();