From 0bd433481669d6c50ca55a3e8d21855b2b01caaf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20H=C3=A4usler?= Date: Mon, 27 Oct 2025 17:30:35 +0100 Subject: [PATCH] FastExcel reader now retains cell format metadata information for all content types. --- .../org/dhatim/fastexcel/reader/RowSpliterator.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/fastexcel-reader/src/main/java/org/dhatim/fastexcel/reader/RowSpliterator.java b/fastexcel-reader/src/main/java/org/dhatim/fastexcel/reader/RowSpliterator.java index 18ed4aad..b49bd87e 100644 --- a/fastexcel-reader/src/main/java/org/dhatim/fastexcel/reader/RowSpliterator.java +++ b/fastexcel-reader/src/main/java/org/dhatim/fastexcel/reader/RowSpliterator.java @@ -133,9 +133,9 @@ private Cell parseCell(int trackedColIndex) throws XMLStreamException { } if ("inlineStr".equals(type)) { - return parseInlineStr(addr); + return parseInlineStr(addr, formatId, formatString); } else if ("s".equals(type)) { - return parseString(addr); + return parseString(addr, formatId, formatString); } else { return parseOther(addr, type, formatId, formatString); } @@ -278,7 +278,7 @@ private String shiftCell(String cellID, Integer dCol, Integer dRow) { } - private Cell parseString(CellAddress addr) throws XMLStreamException { + private Cell parseString(CellAddress addr, final String formatId, final String formatString) throws XMLStreamException { r.goTo(() -> r.isStartElement("v") || r.isEndElement("c")); if (r.isEndElement("c")) { return empty(addr, CellType.STRING); @@ -292,14 +292,14 @@ private Cell parseString(CellAddress addr) throws XMLStreamException { Object value = sharedStringValue; String formula = null; String rawValue = sharedStringValue; - return new Cell(workbook, CellType.STRING, value, addr, formula, rawValue); + return new Cell(workbook, CellType.STRING, value, addr, formula, rawValue, formatId, formatString); } private Cell empty(CellAddress addr, CellType type) { return new Cell(workbook, type, "", addr, null, ""); } - private Cell parseInlineStr(CellAddress addr) throws XMLStreamException { + private Cell parseInlineStr(CellAddress addr, String formatId, String formatString) throws XMLStreamException { Object value = null; String formula = null; String rawValue = null; @@ -314,7 +314,7 @@ private Cell parseInlineStr(CellAddress addr) throws XMLStreamException { } } CellType cellType = formula == null ? CellType.STRING : CellType.FORMULA; - return new Cell(workbook, cellType, value, addr, formula, rawValue); + return new Cell(workbook, cellType, value, addr, formula, rawValue, formatId, formatString); } private Optional getArrayFormula(CellAddress addr) {