在特定条件下停止回调函数

时间:2018-08-28 09:41:43

标签: javascript node.js excel exceljs

我正在使用'exceljs'npm从excel文件读取数据。在下面的函数中,当值中为null时,我想返回行号并结束该函数。

workbook.xlsx.readFile(request.path).then(function () {
        // use workbook
        let worksheet = workbook.getWorksheet('worksheet');
        worksheet.eachRow(function(row, rowNumber){
            console.log("Row " + rowNumber + " = " + JSON.stringify(row.values));
            if(row.values[1] == null || row.values == undefined) {
                // return rowNumber here and end the function.
            }
        });
    });

这就是我一直在做的。 'request.path'包含文件的路径。一切正常,我只需要在代码中提到的条件下结束worksheet.eachRow()

1 个答案:

答案 0 :(得分:0)

eachRow()函数是Click for Solution at codepen,并没有做任何特别神奇的事情。最简单的解决方案是自己做循环。

workbook.xlsx.readFile(request.path).then(function () {
    // use workbook
    let worksheet = workbook.getWorksheet('worksheet');
    for (var rowNumber = 0; rowNumber < worksheet.rowCount; rowNumber++) {
        row = worksheet.getRow(rowNumber);
        console.log("Row " + rowNumber + " = " + JSON.stringify(row.values));
        if(row.values[1] == null || row.values == undefined) {
            // return rowNumber here and end the function.
        }
    }
});

请注意,eachRow()函数默认情况下会跳过空行,因此至少不会满足您的条件之一。