]> source.dussan.org Git - poi.git/commitdiff
allow XSSF RTS
authorPJ Fanning <fanningpj@apache.org>
Tue, 12 Jul 2022 09:40:29 +0000 (09:40 +0000)
committerPJ Fanning <fanningpj@apache.org>
Tue, 12 Jul 2022 09:40:29 +0000 (09:40 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1902674 13f79535-47bb-0310-9956-ffa450edef68

poi/src/main/java/org/apache/poi/hssf/usermodel/HSSFCell.java

index 8e64af4487128a62a4040ef25c61af4f2cc6a96e..8fec6a00a1bac9f649affb0ce4fea2878769c9c8 100644 (file)
@@ -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