You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ab...@apache.org on 2019/12/08 22:23:17 UTC
svn commit: r1871061 - in /poi/trunk/src/ooxml:
java/org/apache/poi/xslf/usermodel/XSLFTable.java
java/org/apache/poi/xslf/usermodel/XSLFTableRow.java
testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java
Author: abearez
Date: Sun Dec 8 22:23:17 2019
New Revision: 1871061
URL: http://svn.apache.org/viewvc?rev=1871061&view=rev
Log:
Fix column addition and removal in XSLFTable
Modified:
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTable.java
poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableRow.java
poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTable.java?rev=1871061&r1=1871060&r2=1871061&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTable.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTable.java Sun Dec 8 22:23:17 2019
@@ -179,8 +179,9 @@ public class XSLFTable extends XSLFGraph
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();
+ for(XSLFTableRow row : _rows) {
+ XSLFTableCell cell = row.addCell();
+ cell.getTextBody(true);
}
updateRowColIndexes();
}
@@ -197,8 +198,9 @@ public class XSLFTable extends XSLFGraph
long width = _table.getTblGrid().getGridColArray(colIdx).getW();
CTTableCol col = _table.getTblGrid().insertNewGridCol(colIdx);
col.setW(width);
- for(CTTableRow row : _table.getTrList()) {
- row.insertNewTc(colIdx);
+ for(XSLFTableRow row : _rows) {
+ XSLFTableCell cell = row.insertCell(colIdx);
+ cell.getTextBody(true);
}
updateRowColIndexes();
}
@@ -210,8 +212,8 @@ public class XSLFTable extends XSLFGraph
*/
public void removeColumn(int colIdx) {
_table.getTblGrid().removeGridCol(colIdx);
- for(CTTableRow row : _table.getTrList()) {
- row.removeTc(colIdx);
+ for(XSLFTableRow row : _rows) {
+ row.removeCell(colIdx);
}
updateRowColIndexes();
}
Modified: poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableRow.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableRow.java?rev=1871061&r1=1871060&r2=1871061&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableRow.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xslf/usermodel/XSLFTableRow.java Sun Dec 8 22:23:17 2019
@@ -51,6 +51,7 @@ public class XSLFTableRow implements Ite
return _row;
}
+ @Override
public Iterator<XSLFTableCell> iterator(){
return _cells.iterator();
}
@@ -74,12 +75,41 @@ public class XSLFTableRow implements Ite
_cells.add(cell);
if(_table.getNumberOfColumns() < _row.sizeOfTcArray()) {
- _table.getCTTable().getTblGrid().addNewGridCol().setW(Units.toEMU(100.0));
+ _table.getCTTable().getTblGrid().addNewGridCol().setW(Units.toEMU(100.0));
}
_table.updateRowColIndexes();
return cell;
}
-
+
+ /**
+ * Insert a new cell at the given index.
+ * @param colIdx the column index.
+ * @since POI 4.1.2
+ */
+ public XSLFTableCell insertCell(int colIdx){
+ CTTableCell c = _row.insertNewTc(colIdx);
+ c.set(XSLFTableCell.prototype());
+ XSLFTableCell cell = new XSLFTableCell(c, _table);
+ _cells.add(colIdx, cell);
+
+ if(_table.getNumberOfColumns() < _row.sizeOfTcArray()) {
+ _table.getCTTable().getTblGrid().insertNewGridCol(colIdx).setW(Units.toEMU(100.0));
+ }
+ _table.updateRowColIndexes();
+ return cell;
+ }
+
+ /**
+ * Remove the cell at the given index.
+ * @param colIdx the column index.
+ * @since POI 4.1.2
+ */
+ public void removeCell(int colIdx){
+ _row.removeTc(colIdx);
+ _cells.remove(colIdx);
+ _table.updateRowColIndexes();
+ }
+
/**
* Merge cells of a table row, inclusive.
* Indices are 0-based.
Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java?rev=1871061&r1=1871060&r2=1871061&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestXSLFTable.java Sun Dec 8 22:23:17 2019
@@ -70,9 +70,11 @@ public class TestXSLFTable {
tab.insertColumn(0);
assertEquals(tab.getColumnWidth(1), tab.getColumnWidth(0), 0.00001);
+ assertNotNull(tab.getCell(0, 0).getTextBody());
tab.addColumn();
tab.getCell(0, data[0].length + 1);
assertEquals(tab.getColumnWidth(tab.getNumberOfColumns() - 2), tab.getColumnWidth(tab.getNumberOfColumns() - 1), 0.00001);
+ assertNotNull(tab.getCell(0, tab.getNumberOfColumns() - 1).getTextBody());
tab.removeColumn(0);
tab.removeColumn(tab.getNumberOfColumns() - 1);
assertEquals(data[0].length, tab.getNumberOfColumns());
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org