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