fix TextJoin use case that was not handled

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1892065 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2021-08-07 10:45:18 +00:00
parent 4ad008ef12
commit d475e00f3a
1 changed files with 24 additions and 0 deletions

View File

@ -182,6 +182,18 @@ public class TestTextJoinFunction {
} }
} }
@Test
void testMicrosoftExample2() throws IOException {
try (HSSFWorkbook wb = initWorkbook2()) {
HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
HSSFCell cell = wb.getSheetAt(0).getRow(0).createCell(100);
confirmResult(fe, cell, "TEXTJOIN(\", \", TRUE, A2:B8)",
"a1, b1, a2, b2, a4, b4, a5, b5, a6, b6, a7, b7");
confirmResult(fe, cell, "TEXTJOIN(\", \", FALSE, A2:B8)",
"a1, b1, a2, b2, , , a4, b4, a5, b5, a6, b6, a7, b7");
}
}
private HSSFWorkbook initWorkbook1() { private HSSFWorkbook initWorkbook1() {
HSSFWorkbook wb = new HSSFWorkbook(); HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet(); HSSFSheet sheet = wb.createSheet();
@ -196,6 +208,18 @@ public class TestTextJoinFunction {
return wb; return wb;
} }
private HSSFWorkbook initWorkbook2() {
HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
addRow(sheet, 0, "As", "Bs");
for (int i = 1; i <= 7; i++) {
if (i != 3) {
addRow(sheet, i, "a" + i, "b" + i);
}
}
return wb;
}
private static void confirmResult(HSSFFormulaEvaluator fe, HSSFCell cell, String formulaText, String expectedResult) { private static void confirmResult(HSSFFormulaEvaluator fe, HSSFCell cell, String formulaText, String expectedResult) {
cell.setCellFormula(formulaText); cell.setCellFormula(formulaText);
fe.notifyUpdateCell(cell); fe.notifyUpdateCell(cell);