Pārlūkot izejas kodu

[bug-65943] support rich text in SXSSFWorkbook (only when shared string table is enabled)

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1898803 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_5_2_2
PJ Fanning pirms 2 gadiem
vecāks
revīzija
bdd7e65d85

+ 50
- 40
poi-ooxml/src/test/java/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java Parādīt failu

@@ -160,47 +160,12 @@ public final class TestSXSSFWorkbook extends BaseTestXWorkbook {

@Test
void useSharedStringsTableWithRichText() throws Exception {
try (SXSSFWorkbook wb = new SXSSFWorkbook(null, 10, false, true)) {

SharedStringsTable sss = wb.getSharedStringSource();

assertNotNull(sss);

XSSFFont redFont = new XSSFFont();
redFont.setColor(new XSSFColor(new java.awt.Color(241,76,93), new DefaultIndexedColorMap()));

Row row = wb.createSheet("S1").createRow(0);

row.createCell(0).setCellValue("A");
row.createCell(1).setCellValue("B");
XSSFRichTextString rts = new XSSFRichTextString("A");
rts.applyFont(redFont);
row.createCell(2).setCellValue(rts);

try (XSSFWorkbook xssfWorkbook = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb)) {
sss = wb.getSharedStringSource();
assertEquals(3, sss.getUniqueCount());
assertTrue(wb.dispose());
testUseSharedStringsTableWithRichText(false);
}

Sheet sheet1 = xssfWorkbook.getSheetAt(0);
assertEquals("S1", sheet1.getSheetName());
assertEquals(1, sheet1.getPhysicalNumberOfRows());
row = sheet1.getRow(0);
assertNotNull(row);
Cell cell = row.getCell(0);
assertNotNull(cell);
assertEquals("A", cell.getStringCellValue());
cell = row.getCell(1);
assertNotNull(cell);
assertEquals("B", cell.getStringCellValue());
cell = row.getCell(2);
assertNotNull(cell);
assertEquals("A", cell.getStringCellValue());
XSSFRichTextString outputRichTextString = (XSSFRichTextString) cell.getRichStringCellValue();
XSSFFont outputFont = outputRichTextString.getFontAtIndex(0);
assertEquals(redFont, outputFont);
}
}
@Test
void useSharedStringsTableWithRichTextAndCompression() throws Exception {
testUseSharedStringsTableWithRichText(true);
}

@Test
@@ -569,4 +534,49 @@ public final class TestSXSSFWorkbook extends BaseTestXWorkbook {
@Disabled("not implemented")
protected void changeSheetNameWithSharedFormulas() {
}

private void testUseSharedStringsTableWithRichText(boolean compressTempFiles) throws Exception {
try (SXSSFWorkbook wb = new SXSSFWorkbook(null, 10, compressTempFiles, true)) {

SharedStringsTable sss = wb.getSharedStringSource();

assertNotNull(sss);

XSSFFont redFont = new XSSFFont();
redFont.setColor(new XSSFColor(new java.awt.Color(241,76,93), new DefaultIndexedColorMap()));

Row row = wb.createSheet("S1").createRow(0);

row.createCell(0).setCellValue("A");
row.createCell(1).setCellValue("B");
XSSFRichTextString rts = new XSSFRichTextString("A");
rts.applyFont(redFont);
row.createCell(2).setCellValue(rts);

try (XSSFWorkbook xssfWorkbook = SXSSFITestDataProvider.instance.writeOutAndReadBack(wb)) {
sss = wb.getSharedStringSource();
assertEquals(3, sss.getUniqueCount());
assertTrue(wb.dispose());

Sheet sheet1 = xssfWorkbook.getSheetAt(0);
assertEquals("S1", sheet1.getSheetName());
assertEquals(1, sheet1.getPhysicalNumberOfRows());
row = sheet1.getRow(0);
assertNotNull(row);
Cell cell = row.getCell(0);
assertNotNull(cell);
assertEquals("A", cell.getStringCellValue());
cell = row.getCell(1);
assertNotNull(cell);
assertEquals("B", cell.getStringCellValue());
cell = row.getCell(2);
assertNotNull(cell);
assertEquals("A", cell.getStringCellValue());
XSSFRichTextString outputRichTextString = (XSSFRichTextString) cell.getRichStringCellValue();
XSSFFont outputFont = outputRichTextString.getFontAtIndex(0);
assertEquals(redFont, outputFont);
}
}
}

}

Notiek ielāde…
Atcelt
Saglabāt