Author: fanningpj
Date: Fri Dec 24 11:11:44 2021
New Revision: 1896348

URL: http://svn.apache.org/viewvc?rev=1896348&view=rev
Log:
preserve rich text in cell copy

Modified:
    
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtilCopy.java
    poi/trunk/poi/src/test/java/org/apache/poi/ss/util/BaseTestCellUtilCopy.java

Modified: 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtilCopy.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtilCopy.java?rev=1896348&r1=1896347&r2=1896348&view=diff
==============================================================================
--- 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtilCopy.java
 (original)
+++ 
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/ss/tests/util/TestXSSFCellUtilCopy.java
 Fri Dec 24 11:11:44 2021
@@ -17,8 +17,10 @@
 
 package org.apache.poi.ss.tests.util;
 
+import org.apache.poi.ss.usermodel.RichTextString;
 import org.apache.poi.ss.usermodel.Workbook;
 import org.apache.poi.ss.util.BaseTestCellUtilCopy;
+import org.apache.poi.xssf.usermodel.XSSFRichTextString;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 
 public class TestXSSFCellUtilCopy extends BaseTestCellUtilCopy {
@@ -27,4 +29,15 @@ public class TestXSSFCellUtilCopy extend
     protected Workbook createNewWorkbook() {
         return new XSSFWorkbook();
     }
+
+    @Override
+    protected boolean compareRichText(RichTextString rts1, RichTextString 
rts2) {
+        if (rts1 instanceof XSSFRichTextString && rts2 instanceof 
XSSFRichTextString) {
+            XSSFRichTextString xrts1 = (XSSFRichTextString)rts1;
+            XSSFRichTextString xrts2 = (XSSFRichTextString)rts2;
+            return 
xrts1.getCTRst().xmlText().equals(xrts2.getCTRst().xmlText());
+        } else {
+            return super.compareRichText(rts1, rts2);
+        }
+    }
 }

Modified: 
poi/trunk/poi/src/test/java/org/apache/poi/ss/util/BaseTestCellUtilCopy.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/util/BaseTestCellUtilCopy.java?rev=1896348&r1=1896347&r2=1896348&view=diff
==============================================================================
--- 
poi/trunk/poi/src/test/java/org/apache/poi/ss/util/BaseTestCellUtilCopy.java 
(original)
+++ 
poi/trunk/poi/src/test/java/org/apache/poi/ss/util/BaseTestCellUtilCopy.java 
Fri Dec 24 11:11:44 2021
@@ -65,6 +65,26 @@ public abstract class BaseTestCellUtilCo
     }
 
     @Test
+    public final void testCopyCellFrom_CellCopyPolicy_richTextValue() {
+        setUp_testCopyCellFrom_CellCopyPolicy();
+        Workbook wb = srcCell.getSheet().getWorkbook();
+        CreationHelper creationHelper = wb.getCreationHelper();
+        RichTextString rts = creationHelper.createRichTextString("text 123");
+        Font font = wb.createFont();
+        font.setFontHeight((short) 999);
+        font.setFontName("Muriel");
+        rts.applyFont(0, 3, font);
+        srcCell.setCellFormula(null);
+        srcCell.setCellValue(rts);
+
+        // Paste values only
+        final CellCopyPolicy policy = new 
CellCopyPolicy.Builder().cellFormula(false).build();
+        CellUtil.copyCell(srcCell, destCell, policy, new CellCopyContext());
+        assertEquals(CellType.STRING, destCell.getCellType());
+        assertTrue(compareRichText(rts, destCell.getRichStringCellValue()));
+    }
+
+    @Test
     public final void 
testCopyCellFrom_CellCopyPolicy_formulaWithUnregisteredUDF() {
         setUp_testCopyCellFrom_CellCopyPolicy();
 
@@ -165,4 +185,7 @@ public abstract class BaseTestCellUtilCo
 
     protected abstract Workbook createNewWorkbook();
 
+    protected boolean compareRichText(RichTextString rts1, RichTextString 
rts2) {
+        return rts1.getString().equals(rts2.getString());
+    }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to