mirror of
https://github.com/apache/poi.git
synced 2025-03-06 00:49:36 +00:00
preserve rich text in cell copy
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1896348 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
0a916cd3e7
commit
dfb4af31e7
@ -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 extends BaseTestCellUtilCopy {
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -64,6 +64,26 @@ public abstract class BaseTestCellUtilCopy {
|
||||
assertEquals(CellType.NUMERIC, destCell.getCellType());
|
||||
}
|
||||
|
||||
@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 BaseTestCellUtilCopy {
|
||||
|
||||
protected abstract Workbook createNewWorkbook();
|
||||
|
||||
protected boolean compareRichText(RichTextString rts1, RichTextString rts2) {
|
||||
return rts1.getString().equals(rts2.getString());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user