当状态列的值为“ Y”时,我需要从excel文件中获取一个值,并且我想将名称列的值返回给调用函数,并且excel表包含的数据如下
姓名号码状态 YYYY 1234 N XXXXX 3456 Y
我这样写的函数
var Excel = require(‘exceljs’);
var workbook = new Excel.Workbook();
var selectStatus = ’’;
module.exports = function() {
return actor({
trimSelectName: function() {
workbook.xlsx.readFile("E:/testData.xlsx")
.then(function(sheetName) {
// use workbook
i = 1;
try {
var workSheet = workbook.getWorksheet("trim");
workSheet.eachRow({
includeEmpty: false
}, function(row, rowNumber) {
if (i == 1) {
i = 0;
} else {
currRow = workSheet.getRow(rowNumber);
console.log("Name :" + currRow.getCell(1).value + ", Number :" + currRow.getCell(2).value +
"Select Status :" + currRow.getCell(3).value);
selectStatus = currRow.getCell(3).value;
if (selectStatus == "Y") {
return selectStatus;
}
}
});
} catch (Error) {
console.log(Error);
}
});
},
});
};
但是我试图从调用函数中获取打印值,但我总是将其作为未定义值
调用功能:
const selected = trimDataSelection.trimSelectName();
您能告诉我问题出在哪里吗?
答案 0 :(得分:0)
正如我所见,您的函数返回了actor对象,我假设您使用的是codeceptjs生成的steps_file,用于扩展“ I”对象以添加自定义函数。因此,如果要从场景中调用自定义函数,则应这样调用它:
const selected = I.trimSelectName()