我有一个简单的数组,如下图所示
我想将办公室代码放在一个数组中。我正在使用节点exceljs
模块来实现此目的
根据github页面的例子,我有这段代码
let array_is =[];
let workbook = new excel.Workbook();
workbook.xlsx.readFile("path_to_file").then(()=>{
var worksheet = workbook.getWorksheet('Sheet1');
var col = worksheet.getColumn(1);
console.log(col.values);
array_is = array_is.push(col.values);
});
console.log(array_is);
但是,数组返回[]
。如果我使用console
语句单独打印excel中的值,我可以正确地看到从excel打印的值。
将值推送到数组时,我做错了什么?我还在数组push语句中使用了toString()
方法,但是没有填充数组。
答案 0 :(得分:0)
array_is
位于workbook.xlsx.readFile
之外,这是主要问题。 workbook.xlsx.readFile
是一个异步函数,因此代码流前进到下一个语句,而不等待当前行的完成。因此,请将您的array_is
记录在readFile函数中。
let array_is =[];
let workbook = new excel.Workbook();
workbook.xlsx.readFile("path_to_file").then(()=>{
var worksheet = workbook.getWorksheet('Sheet1');
var col = worksheet.getColumn(1);
console.log(col.values);
array_is = array_is.push(col.values);
console.log(array_is);
});