【发布时间】:2019-06-01 14:45:35
【问题描述】:
我正在使用 express 和 node-xlsx 模块在 Nodejs 中制作应用程序,我想做的是让用户能够上传 xlsx 文件(必须具有两列的特定格式),然后服务器读取它并对文件的每一行进行处理。
(我的测试文件示例,分别是 A 列和 B 列):
Johny Wilson | jonhny@email.com
Andrew Jehnsen | andrew@example.com
Billy Soon | billy@mail.com
为了做到这一点,我决定使用 node-xlsx 模块,在使用以下代码读取文件后:
var xlsx = require('node-xlsx');
router.post('/enviar', upload.single("lista"),(req, res, next) =>{
//dir is the path of the xlsx file
const workSheetsFromFile = xlsx.parse(dir);
res.send(workSheetsFromFile);
});
返回一个如下所示的对象:
[
{
"name": "Hoja1",
"data": [
[
"Johny Wilson",
"jonhny@email.com"
],
[
"Andrew Jehnsen",
"andrew@example.com"
],
[
"Billy Soon",
"billy@mail.com"
]
]
}
]
如您所见,模块返回所有文件的数据,包括工作表的详细信息(在这种情况下只有一个),我只想访问包含键和值的“数据”数组来处理它们。
我已经尝试在数据数组上循环:
workSheetsFromFile.data.forEach((element) =>{
console.log(element);
});
和
workSheetsFromFile[data].forEach((element) =>{
console.log(element);
});
和
workSheetsFromFile['data'].forEach((element) =>{
console.log(element);
});
但他们都只是向我发送了一个错误,例如“无法读取未定义的属性 'forEach'”或“未定义数据”:(
目前,我希望通过这几行代码迭代数据数组并打印每对键和值,因此一旦修复,在此循环中处理每个键和值以发送自动邮件。
【问题讨论】:
标签: javascript node.js json object