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: [email protected]
For additional commands, e-mail: [email protected]