From 116c32137d504839b1f333d492f2221e4a6e1eb3 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Wed, 8 Jan 2025 11:14:13 +0000 Subject: [PATCH] [bug-69529] try to workaround cells with numeric type whose format cannot be applied git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1922985 13f79535-47bb-0310-9956-ffa450edef68 --- .../xssf/eventusermodel/XSSFSheetXMLHandler.java | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java b/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java index 5e9a58f511..047fee9ecd 100644 --- a/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java +++ b/poi-ooxml/src/main/java/org/apache/poi/xssf/eventusermodel/XSSFSheetXMLHandler.java @@ -426,10 +426,18 @@ public class XSSFSheetXMLHandler extends DefaultHandler { case NUMBER: String n = value.toString(); - if (this.formatString != null && n.length() > 0) - thisStr = formatter.formatRawCellContents(Double.parseDouble(n), this.formatIndex, this.formatString); - else + if (this.formatString != null && n.length() > 0) { + try { + thisStr = formatter.formatRawCellContents( + Double.parseDouble(n), this.formatIndex, this.formatString); + } catch (NumberFormatException e) { + LOG.atInfo().log("Error formatting cell '{}' - will use its raw value instead", + cellRef); + thisStr = n; + } + } else { thisStr = n; + } break; default: