You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by fa...@apache.org on 2019/04/26 07:48:26 UTC
svn commit: r1858179 - in /poi/trunk/src/ooxml:
java/org/apache/poi/xssf/usermodel/XSSFSheet.java
java/org/apache/poi/xssf/usermodel/XSSFTable.java
testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java
Author: fanningpj
Date: Fri Apr 26 07:48:26 2019
New Revision: 1858179
URL: http://svn.apache.org/viewvc?rev=1858179&view=rev
Log:
[bug-62906] ensure table display name is always set
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java?rev=1858179&r1=1858178&r2=1858179&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFSheet.java Fri Apr 26 07:48:26 2019
@@ -4140,6 +4140,10 @@ public class XSSFSheet extends POIXMLDoc
table.setArea(tableArea);
}
+ // Bug 62906: Must set a display name; can be overridden using setDisplayName
+ final String displayName = "Table" + tableNumber;
+ table.setDisplayName(displayName);
+
return table;
}
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java?rev=1858179&r1=1858178&r2=1858179&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java Fri Apr 26 07:48:26 2019
@@ -432,6 +432,9 @@ public class XSSFTable extends POIXMLDoc
* @param name to use
*/
public void setDisplayName(String name) {
+ if (name == null || name.isEmpty()) {
+ throw new IllegalArgumentException("Display name must not be null or empty");
+ }
ctTable.setDisplayName(name);
}
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java?rev=1858179&r1=1858178&r2=1858179&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java Fri Apr 26 07:48:26 2019
@@ -171,7 +171,7 @@ public final class TestXSSFTable {
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("StructuredReferences.xlsx")) {
XSSFTable table = wb.getTable("\\_Prime.1");
assertEquals(0, table.getStartColIndex());
- }
+ }
}
@Test
@@ -229,17 +229,13 @@ public final class TestXSSFTable {
assertEquals(3, table.getColumnCount());
}
}
-
+
@Test
public void getAndSetDisplayName() throws IOException {
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("StructuredReferences.xlsx")) {
XSSFTable table = wb.getTable("\\_Prime.1");
assertEquals("\\_Prime.1", table.getDisplayName());
-
- table.setDisplayName(null);
- assertNull(table.getDisplayName());
- assertEquals("\\_Prime.1", table.getName()); // name and display name are different
-
+
table.setDisplayName("Display name");
assertEquals("Display name", table.getDisplayName());
assertEquals("\\_Prime.1", table.getName()); // name and display name are different
@@ -253,6 +249,8 @@ public final class TestXSSFTable {
try (XSSFWorkbook wb = new XSSFWorkbook()) {
XSSFSheet sh = wb.createSheet();
XSSFTable table = sh.createTable();
+ assertNotNull(table.getDisplayName());
+ assertNotNull(table.getCTTable().getDisplayName());
CTTable ctTable = table.getCTTable();
ctTable.setRef("B2:E8");
@@ -299,7 +297,7 @@ public final class TestXSSFTable {
IOUtils.closeQuietly(wb);
}
}
-
+
@Test
public void testGetDataRowCount() throws IOException {
try (XSSFWorkbook wb = new XSSFWorkbook()) {
@@ -318,7 +316,7 @@ public final class TestXSSFTable {
IOUtils.closeQuietly(wb);
}
}
-
+
@Test
public void testSetDataRowCount() throws IOException {
try (XSSFWorkbook wb = new XSSFWorkbook()) {
@@ -358,6 +356,8 @@ public final class TestXSSFTable {
XSSFTable table1 = sheet.createTable(reference1);
assertEquals("A1:C3", table1.getCTTable().getRef());
+ assertNotNull(table1.getDisplayName());
+ assertNotNull(table1.getCTTable().getDisplayName());
assertEquals(1, table1.getCTTable().getTableColumns().getTableColumnArray(0).getId());
assertEquals(2, table1.getCTTable().getTableColumns().getTableColumnArray(1).getId());
@@ -413,7 +413,7 @@ public final class TestXSSFTable {
assertEquals(2, table.getRowCount());
}
}
-
+
@Test
public void testCreateColumn() throws IOException {
try (XSSFWorkbook wb = new XSSFWorkbook()) {
@@ -460,7 +460,7 @@ public final class TestXSSFTable {
table.createColumn("Column 3", 3); // out of bounds
}
}
-
+
@Test
public void testDifferentHeaderTypes() throws IOException {
try (XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("TablesWithDifferentHeaders.xlsx")) {
@@ -492,7 +492,7 @@ public final class TestXSSFTable {
assertEquals("Column2", t.getCTTable().getTableColumns().getTableColumnArray(1).getName());
}
}
-
+
/**
* See https://stackoverflow.com/questions/44407111/apache-poi-cant-format-filled-cells-as-numeric
*/
@@ -546,4 +546,45 @@ public final class TestXSSFTable {
IOUtils.closeQuietly(wb2);
}
}
+
+ @Test
+ public void testSetDisplayName() throws IOException {
+ try (XSSFWorkbook wb = new XSSFWorkbook()) {
+ XSSFSheet sheet = wb.createSheet();
+
+ AreaReference reference1 = wb.getCreationHelper().createAreaReference(
+ new CellReference(0, 0), new CellReference(2, 2));
+
+ XSSFTable table1 = sheet.createTable(reference1);
+ table1.setDisplayName("TableTest");
+ assertEquals("TableTest", table1.getDisplayName());
+ assertEquals("TableTest", table1.getCTTable().getDisplayName());
+ }
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testSetDisplayNameNull() throws IOException {
+ try (XSSFWorkbook wb = new XSSFWorkbook()) {
+ XSSFSheet sheet = wb.createSheet();
+
+ AreaReference reference1 = wb.getCreationHelper().createAreaReference(
+ new CellReference(0, 0), new CellReference(2, 2));
+
+ XSSFTable table1 = sheet.createTable(reference1);
+ table1.setDisplayName(null);
+ }
+ }
+
+ @Test(expected = IllegalArgumentException.class)
+ public void testSetDisplayNameEmpty() throws IOException {
+ try (XSSFWorkbook wb = new XSSFWorkbook()) {
+ XSSFSheet sheet = wb.createSheet();
+
+ AreaReference reference1 = wb.getCreationHelper().createAreaReference(
+ new CellReference(0, 0), new CellReference(2, 2));
+
+ XSSFTable table1 = sheet.createTable(reference1);
+ table1.setDisplayName("");
+ }
+ }
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org