Kaynağa Gözat

bug 59796: XSSFTable#getRowCount off-by-one error

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1751373 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_3_15_BETA3
Javen O'Neal 8 yıl önce
ebeveyn
işleme
152ca83a2e

+ 5
- 5
src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFTable.java Dosyayı Görüntüle



/** /**
* @return the total number of rows in the selection. (Note: in this version autofiltering is ignored)
*
* @return the total number of rows in the selection. (Note: in this version autofiltering is ignored)
* Returns <code>0</code> if the start or end cell references are not set.
*
* Does not track updates to underlying changes to CTTable * Does not track updates to underlying changes to CTTable
* To synchronize with changes to the underlying CTTable, * To synchronize with changes to the underlying CTTable,
* call {@link #updateReferences()}. * call {@link #updateReferences()}.
CellReference from = getStartCellReference(); CellReference from = getStartCellReference();
CellReference to = getEndCellReference(); CellReference to = getEndCellReference();
int rowCount = -1;
int rowCount = 0;
if (from!=null && to!=null) { if (from!=null && to!=null) {
// FIXME: shouldn't this be to-from+1?
rowCount = to.getRow()-from.getRow();
rowCount = to.getRow() - from.getRow() + 1;
} }
return rowCount; return rowCount;
} }

+ 20
- 0
src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFTable.java Dosyayı Görüntüle

assertEquals(new CellReference("M3"), table.getEndCellReference()); assertEquals(new CellReference("M3"), table.getEndCellReference());


} }

@Test
public void getRowCount() {
XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sh = wb.createSheet();
XSSFTable table = sh.createTable();
CTTable ctTable = table.getCTTable();

assertEquals(0, table.getRowCount());

ctTable.setRef("B2:B2");
// update cell references to clear the cache
table.updateReferences();
assertEquals(1, table.getRowCount());

ctTable.setRef("B2:B12");
// update cell references to clear the cache
table.updateReferences();
assertEquals(11, table.getRowCount());
}
} }

Loading…
İptal
Kaydet