Excel数据未进入数组

时间:2018-05-18 05:33:00

标签: javascript arrays exceljs

我有一个简单的数组,如下图所示

Excel

我想将办公室代码放在一个数组中。我正在使用节点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()方法,但是没有填充数组。

1 个答案:

答案 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);
});