From: Dominik Stadler Date: Thu, 28 Nov 2013 21:19:34 +0000 (+0000) Subject: Bug 55745: fix handling of tables in XSSF if there are comments as well, add testcase... X-Git-Tag: REL_3_10_FINAL~40 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=7926036f2fab482b5d953457bc123a905de54147;p=poi.git Bug 55745: fix handling of tables in XSSF if there are comments as well, add testcase which was committed to the wrong tag git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1546458 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java index 1794c230b1..047fe9c182 100644 --- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java +++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java @@ -1043,7 +1043,7 @@ public final class TestXSSFSheet extends BaseTestSheet { assertEquals("XSSFSheet#removeRow did not clear calcChain entries", 0, calcChain.getCTCalcChain().sizeOfCArray()); - //calcChain should be gone + //calcChain should be gone wb = XSSFTestDataSamples.writeOutAndReadBack(wb); assertNull(wb.getCalculationChain()); @@ -1055,49 +1055,49 @@ public final class TestXSSFSheet extends BaseTestSheet { public void testTables() { XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("WithTable.xlsx"); assertEquals(3, wb.getNumberOfSheets()); - + // Check the table sheet XSSFSheet s1 = wb.getSheetAt(0); assertEquals("a", s1.getRow(0).getCell(0).getRichStringCellValue().toString()); assertEquals(1.0, s1.getRow(1).getCell(0).getNumericCellValue()); - + List tables = s1.getTables(); assertNotNull(tables); assertEquals(1, tables.size()); - + XSSFTable table = tables.get(0); assertEquals("Tabella1", table.getName()); assertEquals("Tabella1", table.getDisplayName()); - + // And the others XSSFSheet s2 = wb.getSheetAt(1); assertEquals(0, s2.getTables().size()); XSSFSheet s3 = wb.getSheetAt(2); assertEquals(0, s3.getTables().size()); } - + /** * Test to trigger OOXML-LITE generating to include org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetCalcPr */ public void testSetForceFormulaRecalculation() { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet("Sheet 1"); - + // Set sheet.setForceFormulaRecalculation(true); assertEquals(true, sheet.getForceFormulaRecalculation()); - + // calcMode="manual" is unset when forceFormulaRecalculation=true CTCalcPr calcPr = workbook.getCTWorkbook().addNewCalcPr(); calcPr.setCalcMode(STCalcMode.MANUAL); sheet.setForceFormulaRecalculation(true); assertEquals(STCalcMode.AUTO, calcPr.getCalcMode()); - + // Check sheet.setForceFormulaRecalculation(false); assertEquals(false, sheet.getForceFormulaRecalculation()); - - + + // Save, re-load, and re-check workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook); sheet = workbook.getSheet("Sheet 1"); @@ -1210,4 +1210,22 @@ public final class TestXSSFSheet extends BaseTestSheet { assertNotNull(sh); assertEquals(ROW_COUNT-1, sh.getLastRowNum()); } + + public static void test55745() throws Exception { + XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("55745.xlsx"); + XSSFSheet sheet = wb.getSheetAt(0); + List tables = sheet.getTables(); + /*System.out.println(tables.size()); + + for(XSSFTable table : tables) { + System.out.println("XPath: " + table.getCommonXpath()); + System.out.println("Name: " + table.getName()); + System.out.println("Mapped Cols: " + table.getNumerOfMappedColumns()); + System.out.println("Rowcount: " + table.getRowCount()); + System.out.println("End Cell: " + table.getEndCellReference()); + System.out.println("Start Cell: " + table.getStartCellReference()); + }*/ + assertEquals("Sheet should contain 8 tables", 8, tables.size()); + assertNotNull("Sheet should contain a comments table", sheet.getCommentsTable(false)); + } }