diff options
author | Nick Burch <nick@apache.org> | 2011-12-20 05:34:58 +0000 |
---|---|---|
committer | Nick Burch <nick@apache.org> | 2011-12-20 05:34:58 +0000 |
commit | 7371290ff716d1f9df99bb255a1493bd082b538c (patch) | |
tree | 864114982450bbaef8d3c9b4b320d8446ebef194 /src/ooxml/java/org/apache/poi/xssf/eventusermodel | |
parent | 1b65bb839a01ed8f830a475f8c668ff5b2a51e24 (diff) | |
download | poi-7371290ff716d1f9df99bb255a1493bd082b538c.tar.gz poi-7371290ff716d1f9df99bb255a1493bd082b538c.zip |
Fix bug #52369 - Event based XSSF parsing should handle formatting of formula values in XSSFSheetXMLHandler
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1221103 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/ooxml/java/org/apache/poi/xssf/eventusermodel')
-rw-r--r-- | src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java b/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java index 1c6018c13b..5d7e2dcaa7 100644 --- a/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java +++ b/src/ooxml/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java @@ -242,7 +242,21 @@ public class XSSFSheetXMLHandler extends DefaultHandler { if(formulasNotResults) { thisStr = formula.toString(); } else { - thisStr = value.toString(); + String fv = value.toString(); + + if (this.formatString != null) { + try { + // Try to use the value as a formattable number + double d = Double.parseDouble(fv); + thisStr = formatter.formatRawCellContents(d, this.formatIndex, this.formatString); + } catch(NumberFormatException e) { + // Formula is a String result not a Numeric one + thisStr = fv; + } + } else { + // No formatter supplied, just do raw value in all cases + thisStr = fv; + } } break; |