]> source.dussan.org Git - poi.git/commitdiff
fix TextJoin use case that was not handled
authorPJ Fanning <fanningpj@apache.org>
Sat, 7 Aug 2021 10:45:18 +0000 (10:45 +0000)
committerPJ Fanning <fanningpj@apache.org>
Sat, 7 Aug 2021 10:45:18 +0000 (10:45 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1892065 13f79535-47bb-0310-9956-ffa450edef68

poi/src/test/java/org/apache/poi/ss/formula/atp/TestTextJoinFunction.java

index 00792985ace8bb37b93f89add948cc01dbaa8b63..29d716bcec5dd1eab9621eeaa22aa1bb244b279a 100644 (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() {
         HSSFWorkbook wb = new HSSFWorkbook();
         HSSFSheet sheet = wb.createSheet();
@@ -196,6 +208,18 @@ public class TestTextJoinFunction {
         return wb;
     }
 
+    private HSSFWorkbook initWorkbook2() {
+        HSSFWorkbook wb = new HSSFWorkbook();
+        HSSFSheet sheet = wb.createSheet();
+        addRow(sheet, 0, "A’s", "B’s");
+        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) {
         cell.setCellFormula(formulaText);
         fe.notifyUpdateCell(cell);