LEFT("ANYSTRING", -1) RIGHT("ANYSTRING", -1) Either of the functions above should return #VALUE! but return an exception Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: -1 at java.lang.String.substring(String.java:1937) at org.apache.poi.hssf.record.formula.functions.TextFunction$LeftRight.evaluate(TextFunction.java:183) at org.apache.poi.hssf.record.formula.functions.Var1or2ArgFunction.evaluate(Var1or2ArgFunction.java:36) at org.apache.poi.ss.formula.OperationEvaluatorFactory.evaluate(OperationEvaluatorFactory.java:132) HSSFWorkbook wbHSSF = new HSSFWorkbook(); HSSFSheet sheetHSSF = wbHSSF.createSheet("LEFTRIGHTTESTSHEET"); FormulaEvaluator createFormulaEvaluator = wbHSSF.getCreationHelper().createFormulaEvaluator(); HSSFCell createCell = sheetHSSF.createRow(0).createCell(0,Cell.CELL_TYPE_FORMULA); createCell.setCellFormula("LEFT(\"ANYSTRING\",-1)"); createFormulaEvaluator.evaluate(createCell);
Created attachment 25959 [details] Patch containing fix and test case
Applied in r992570 Thanks, Yegor