]> source.dussan.org Git - poi.git/commitdiff
Fix addition and removal of columns in XSLTTable
authorAlain Béarez <abearez@apache.org>
Thu, 28 Nov 2019 00:51:43 +0000 (00:51 +0000)
committerAlain Béarez <abearez@apache.org>
Thu, 28 Nov 2019 00:51:43 +0000 (00:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1870523 13f79535-47bb-0310-9956-ffa450edef68

src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTable.java
src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java

index de0ff27bef4c6c2e28cf3765f30e3ee9e7301163..c5260109cdc357c5c81801f2983c01141bb64b78 100644 (file)
@@ -179,6 +179,9 @@ public class XSLFTable extends XSLFGraphicFrame implements Iterable<XSLFTableRow
         long width = _table.getTblGrid().getGridColArray(_table.getTblGrid().sizeOfGridColArray() - 1).getW();
         CTTableCol col = _table.getTblGrid().addNewGridCol();
         col.setW(width);
+        for(CTTableRow row : _table.getTrList()) {
+            row.addNewTc();
+        }
         updateRowColIndexes();
     }
 
@@ -194,6 +197,9 @@ public class XSLFTable extends XSLFGraphicFrame implements Iterable<XSLFTableRow
         long width = _table.getTblGrid().getGridColArray(colIdx).getW();
         CTTableCol col = _table.getTblGrid().insertNewGridCol(colIdx);
         col.setW(width);
+        for(CTTableRow row : _table.getTrList()) {
+            row.insertNewTc(colIdx);
+        }
         updateRowColIndexes();
     }
 
@@ -204,6 +210,9 @@ public class XSLFTable extends XSLFGraphicFrame implements Iterable<XSLFTableRow
      */
     public void removeColumn(int colIdx) {
         _table.getTblGrid().removeGridCol(colIdx);
+        for(CTTableRow row : _table.getTrList()) {
+            row.removeTc(colIdx);
+        }
         updateRowColIndexes();
     }
 
index d993b70b90526b5349e4f77fd11d421e998510a3..ce4352f405ff4dd0c7ccbf1717f1f560513d96c2 100644 (file)
@@ -71,6 +71,7 @@ public class TestXSLFTable {
             tab.insertColumn(0);
             assertEquals(tab.getColumnWidth(1), tab.getColumnWidth(0), 0.00001);
             tab.addColumn();
+            tab.getCell(0, data[0].length + 1);
             assertEquals(tab.getColumnWidth(tab.getNumberOfColumns() - 2), tab.getColumnWidth(tab.getNumberOfColumns() - 1), 0.00001);
             tab.removeColumn(0);
             tab.removeColumn(tab.getNumberOfColumns() - 1);