npm量角器xlsx文件等待并重试

时间:2016-04-30 21:02:32

标签: javascript npm protractor lockfile exceljs

我正在尝试运行具有多种功能的量角器(大约30种带有diff版本的浏览器) 数据表是xlsx,是一张将被消费的表格。每次运行后,xlsx行将被更新为“已使用”

我使用exceljs来写标志。但如果它已经被另一个进程使用/打开,它会抛出错误。我处理了异常,但我没有失败,我希望muti进程等待并重试访问该文件。

请建议如何通过多个进程同时读/写一个xlsx - 处理过程必须等待任何先前的进程完成其访问。

写功能:

updateRunnerXLS: function(fileName) {
    var Excel = require('exceljs'); //Require the exceljs package
    var workbook = new Excel.Workbook(); //create a workbook reader
    workbook.xlsx.readFile(fileName)
    .then(function(workbook) {
        var rowValues = []; //initialize empty array
        var worksheet = workbook.getWorksheet('sheet2');
        var nameCol = worksheet.getColumn('M');
        nameCol.eachCell(function(cell, rowNumber) { //Loop through the cells
            if (cell.value == 'Y') { //get all rows with Y
                rowValues.push(rowNumber); //Fill the array with row number
            }
        });
         var row = worksheet.getRow(rowValues[0]); //Get the first row from the array
        row.getCell('M').value = 'X'; //update the first row that has a  Y to X
        row.commit(); //Commit the row change
        workbook.xlsx.writeFile(fileName).then(function() {
            //done
        }).catch(function (err) {
            console.log('Handled the error - ' + err);
        })
    })
}

读取功能:(使用exceljs读取更简单)

var Parser = require('parse-xlsx');
sheet = new Parser(testDataFolder + 'dataSheet.xlsx', 'sheet2');

0 个答案:

没有答案