// lookup_value , table_array, range_lookup, find lookup value, col_index, fetch result
ValueEval lookupValue = OperandResolver.getSingleValue(lookup_value, srcRowIndex, srcColumnIndex);
TwoDEval tableArray = LookupUtils.resolveTableArrayArg(table_array);
- boolean isRangeLookup = LookupUtils.resolveRangeLookupArg(range_lookup, srcRowIndex, srcColumnIndex);
+ boolean isRangeLookup;
+ try {
+ isRangeLookup = LookupUtils.resolveRangeLookupArg(range_lookup, srcRowIndex, srcColumnIndex);
+ } catch(RuntimeException e) {
+ isRangeLookup = true;
+ }
int rowIndex = LookupUtils.lookupIndexOfValue(lookupValue, LookupUtils.createColumnVector(tableArray, 0), isRangeLookup);
int colIndex = LookupUtils.resolveRowOrColIndexArg(col_index, srcRowIndex, srcColumnIndex);
ValueVector resultCol = createResultColumnVector(tableArray, colIndex);
assertEquals("D 0,068", evaluator.evaluate(wb.getSheetAt(0).getRow(1).getCell(1)));
}
+ @Test
public void testBug62275() throws IOException {
try (Workbook wb = new XSSFWorkbook()) {
Sheet sheet = wb.createSheet();
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
- cell.setCellFormula("vlookup(A2,B1:B5,2,)");
+ cell.setCellFormula("vlookup(A2,B1:B5,2,true)");
- CreationHelper crateHelper = wb.getCreationHelper();
- FormulaEvaluator eval = crateHelper.createFormulaEvaluator();
+ CreationHelper createHelper = wb.getCreationHelper();
+ FormulaEvaluator eval = createHelper.createFormulaEvaluator();
eval.evaluate(cell);
}
}