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]