Author: fanningpj
Date: Wed Oct 18 09:37:37 2023
New Revision: 1913080

URL: http://svn.apache.org/viewvc?rev=1913080&view=rev
Log:
[bug-67785] make XSSFExcelExtractor output more like that from 
XSSFEventBasedExcelExtractor

Modified:
    
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java
    
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java

Modified: 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java?rev=1913080&r1=1913079&r2=1913080&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/xssf/extractor/XSSFExcelExtractor.java
 Wed Oct 18 09:37:37 2023
@@ -55,6 +55,7 @@ public class XSSFExcelExtractor
 
     private Locale locale;
     private final XSSFWorkbook workbook;
+    private final DataFormatter dataFormatter;
     private boolean includeSheetNames = true;
     private boolean formulasNotResults;
     private boolean includeCellComments;
@@ -67,6 +68,8 @@ public class XSSFExcelExtractor
     }
     public XSSFExcelExtractor(XSSFWorkbook workbook) {
         this.workbook = workbook;
+        this.dataFormatter = new DataFormatter();
+        this.dataFormatter.setUseCachedValuesForFormulaCells(true);
     }
 
     /**
@@ -243,8 +246,12 @@ public class XSSFExcelExtractor
         }
 
         // No supported styling applies to this cell
-        String contents = ((XSSFCell)cell).getRawValue();
+        String contents = dataFormatter.formatCellValue(cell);
         if (contents != null) {
+            if (type == CellType.ERROR) {
+                // to match what XSSFEventBasedExcelExtractor does
+                contents = "ERROR:" + contents;
+            }
             checkMaxTextSize(text, contents);
             text.append(contents);
         }

Modified: 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java?rev=1913080&r1=1913079&r2=1913080&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/xssf/extractor/TestXSSFExcelExtractor.java
 Wed Oct 18 09:37:37 2023
@@ -248,6 +248,17 @@ class TestXSSFExcelExtractor {
     }
 
     @Test
+    void test67784() throws Exception {
+        try (XSSFExcelExtractor extractor = getExtractor("bug67784.xlsx")) {
+            String text = extractor.getText().replace("\r", "");
+            String[] lines = text.split("\n");
+            assertEquals("FALSE", lines[2]);
+            assertEquals("TRUE", lines[3]);
+            assertEquals("ERROR:#DIV/0!", lines[4]);
+        }
+    }
+
+    @Test
     void test67784Formulas() throws Exception {
         try (XSSFExcelExtractor extractor = getExtractor("bug67784.xlsx")) {
             extractor.setFormulasNotResults(true);



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org
For additional commands, e-mail: commits-h...@poi.apache.org

Reply via email to