我使用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()的上下文中創建的任何對象似乎在之後都會被銷燬。奇怪的。