我使用Node npm库“ExcelJS”读取Excel工作簿的工作表,并使用表示数据表行中找到的数据的对象填充数组。在离开函数上下文后,Javascript数组内容消失
我不认为这个问题与ExcelJS直接相关,可能是由于我对JavaScript函数上下文的基本理解不足。
的代码:
getData = function() {
var dataRows = [];
workbook.xlsx.readFile("myExcelWorkbook").then(function() {
var worksheet = workbook.getWorksheet("MyWorksheet");
worksheet.eachRow(function (row) {
var dataRow = {
colA: row.getCell("A").value,
colB: row.getCell("B").value,
colC: row.getCell("C").value
};
dataRows.push(dataRow);
});
});
return dataRows;
};
如果我调试通过上面的代码步骤我不能看到正被填充了eachRow功能期间找到正确的数据的数据行对象。但是,一旦退出“readFile”函数,填充到dataRows对象中的所有项目就会消失。无论我如何尝试填充dataRows(例如,调用外部函数来填充dataRows数组),在workbook.xslx.readFile()的上下文中创建的任何对象似乎在之后都会被销毁。奇怪的。