Я использую EXCELJS для чтения данных из файла Excel.Создана функция allinExcel , которая возвращает значения столбца в обещании.Поскольку мне нужны 2 столбца, я связал аналогичные функции обещания - allinExcel .В этом контексте, однако, я получаю ожидаемые результаты, а иногда нет, что неоднозначно.Файл ProExcel состоит из 2 столбцов. Ожидаемый результат от приведенного ниже кода - 2 массива, который включает в себя содержимое каждого столбца.Любая помощь в этом очень полезна.Ожидаемый результат - [ <1 empty item>, 'GEL', 'BEL', 'HEL', 'SEL' ] [ <1 empty item>, 55, 555, 66, 666 ]
Но если я получу значение столбца, используя одно обещание, я получу результат каждый раз без какой-либо двусмысленности.
describe("Excel Read ",function(){
function allinExcel(colNum){
var Excel = require('exceljs');
var workbook = new Excel.Workbook();
var excelFilePath = "ExcelData/ProExcel.xlsx"
return workbook.xlsx.readFile(excelFilePath).then(function() {
var worksheet=workbook.getWorksheet('Sheet1');
return worksheet.getColumn(colNum+1).values
},function(error){
console.log(error)
return fail
})
}
it("Excel Operation",function(){
allinExcel(0).then(function(col0){
allinExcel(1).then(function(col1){
console.log(col1,col0)
})
})
})
Ниже приведен файл conf.js
// conf.js
var Jasmine2HtmlReporter = require('protractor-jasmine2-html-reporter');
exports.config = {
seleniumAddress: 'http://localhost:4444/wd/hub',
getPageTimeout:20000, // browser.get timeout
allScriptsTimeout: 360000, // Time to load the DOM
jasmineNodeOpts: {defaultTimeoutInterval: 50000}, //For individual it
framework: 'jasmine',
capabilities: {
'browserName': 'chrome',
chromeOptions: {
args: [
'--start-maximized','disable-infobars'//,'--headless'
]
}
},
onPrepare: function() {
global.EC = protractor.ExpectedConditions,
jasmine.getEnv().addReporter(
new Jasmine2HtmlReporter({
savePath: 'target/reports',
screenshotsFolder: 'images',
takeScreenshots: true,
takeScreenshotsOnlyOnFailures: true,
fixedScreenshotName: false,
fileName: 'currentRun',
cleanDestination: true
})
);
},
jasmineNodeOpts: {
showColors: true, // Use colors in the command line report.
},
specs: ['specs/WebTables.js'],
};