-1

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

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 中打印的值。

我在将值推送到数组时做错了什么。我也在toString()数组 push 语句中使用了该方法,但未填充数组。

4

1 回答 1

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);
});
于 2018-05-20T21:10:59.270 回答