但是如果将读取Excel数据并放置到数组和对数组数据进行操作都放在Excel_to_Json.js中,代码似乎过长。毕竟下一步操作需要多少代码,有点难以预估。
所以可以将这个读取数据放置数组的Excel_to_Json.js作为一个小工具,在新的js文件中调用。
但是存在的问题又多了一个:要读取的Excel文件路径固定在了Excel_to_Json.js里。实际运用中,文件名字与路径是不定的。如果要读取新的Excel文件,反过来再去修改Excel_to_Json.js里的读文件语句多少有点不太理想。
所以我又开始修改了。
已知:Excel_to_Json.js中存在了方法,以及方法内有一个含有数据的数组:
需求:1.将Excel_to_Json.js里的方法改成一个函数,输入Excel文件路径即可返回数组;
2.在新建的result.js中调用Excel_to_Json.js的这个方法并输出数组;
一、Excel_to_Json.js内的改写:
1.把向数组循环添加元素这一部分改成函数;
2.把文件路径作为函数的参数,调用函数时只需要输入文件路径就能返回数组;
3.用module.export模块导出函数;
关于nodejs 的module部分可看以下链接:
const xlsx = require("node-xlsx")
const fs = require("fs")
//将向数组添加数据写成一个函数
///此处选择循环添加方法
function GetData(Path)
{
const sheets = xlsx.parse(Path)
//读取xlxs的sheet1
const sheetData = sheets[0].data
let testList = [] // 建立空数组,用于放置数据
testTitle = sheetData[0] //读取标题行
sheetData.forEach((item, index) =>
{
//整一个新对象
var NewVot = {}
if (index == 0)
{
return
}
else
{
for(var i = 0 ; i < testTitle.length ; i++ )
{
NewVot[testTitle[i]] = item[i]
}
testList.push(NewVot)
}
})
return testList
}
//用module.exports挂载这个函数
module.exports.GetData = GetData
二、新建的result.js:
//调用Excel_to_Json.js
const {GetData} = require("./Excel_to_Json.js")
//输入路径
const List = GetData("./data.xlsx")
//打印看效果
console.log(List)