From 8fbe3966dd0d18130d5f8e5625e9b1c69ce0c297 Mon Sep 17 00:00:00 2001 From: PJ Fanning Date: Tue, 12 Jul 2022 09:40:29 +0000 Subject: [PATCH] allow XSSF RTS git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1902674 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/hssf/usermodel/HSSFCell.java | 33 ++++++++++++------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFCell.java b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFCell.java index 8e64af4487..8fec6a00a1 100644 --- a/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFCell.java +++ b/poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFCell.java @@ -495,20 +495,29 @@ public class HSSFCell extends CellBase { // so handle things as a normal rich text cell if (_cellType != CellType.STRING) { - int row=_record.getRow(); - short col=_record.getColumn(); - short styleIndex=_record.getXFIndex(); + int row = _record.getRow(); + short col = _record.getColumn(); + short styleIndex = _record.getXFIndex(); setCellType(CellType.STRING, false, row, col, styleIndex); } - int index; - - HSSFRichTextString hvalue = (HSSFRichTextString) value; - UnicodeString str = hvalue.getUnicodeString(); - index = _book.getWorkbook().addSSTString(str); - (( LabelSSTRecord ) _record).setSSTIndex(index); - _stringValue = hvalue; - _stringValue.setWorkbookReferences(_book.getWorkbook(), (( LabelSSTRecord ) _record)); - _stringValue.setUnicodeString(_book.getWorkbook().getSSTString(index)); + + if (value instanceof HSSFRichTextString) { + HSSFRichTextString hvalue = (HSSFRichTextString) value; + UnicodeString str = hvalue.getUnicodeString(); + int index = _book.getWorkbook().addSSTString(str); + (( LabelSSTRecord ) _record).setSSTIndex(index); + _stringValue = hvalue; + _stringValue.setWorkbookReferences(_book.getWorkbook(), (( LabelSSTRecord ) _record)); + _stringValue.setUnicodeString(_book.getWorkbook().getSSTString(index)); + } else { + HSSFRichTextString hvalue = new HSSFRichTextString(value.getString()); + UnicodeString str = hvalue.getUnicodeString(); + int index = _book.getWorkbook().addSSTString(str); + (( LabelSSTRecord ) _record).setSSTIndex(index); + _stringValue = hvalue; + _stringValue.setWorkbookReferences(_book.getWorkbook(), (( LabelSSTRecord ) _record)); + _stringValue.setUnicodeString(_book.getWorkbook().getSSTString(index)); + } } @Override -- 2.39.5