aboutsummaryrefslogtreecommitdiffstats
path: root/src/ooxml/java/org/apache/poi/xssf/eventusermodel
diff options
context:
space:
mode:
authorNick Burch <nick@apache.org>2011-12-20 05:34:58 +0000
committerNick Burch <nick@apache.org>2011-12-20 05:34:58 +0000
commit7371290ff716d1f9df99bb255a1493bd082b538c (patch)
tree864114982450bbaef8d3c9b4b320d8446ebef194 /src/ooxml/java/org/apache/poi/xssf/eventusermodel
parent1b65bb839a01ed8f830a475f8c668ff5b2a51e24 (diff)
downloadpoi-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.java16
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;