Browse Source

[bug-64536] add getDimension on XSSFSheet

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1899091 13f79535-47bb-0310-9956-ffa450edef68
tags/REL_5_2_3
PJ Fanning 2 years ago
parent
commit
56b4313997

+ 14
- 0
poi-ooxml/src/main/java/org/apache/poi/xssf/usermodel/XSSFSheet.java View File

@@ -3962,6 +3962,20 @@ public class XSSFSheet extends POIXMLDocumentPart implements Sheet, OoxmlSheetEx
safeGetProtectionField().setSelectUnlockedCells(enabled);
}

/**
* Reads the dimensions of the sheet data
* @return dimensions of the sheet data as a Cell Range (can be null)
* @since POI 5.2.3
*/
public CellRangeAddress getDimension() {
CTSheetDimension ctSheetDimension = worksheet.getDimension();
String ref = ctSheetDimension == null ? null : ctSheetDimension.getRef();
if (ref != null) {
return CellRangeAddress.valueOf(ref);
}
return null;
}

private CTSheetProtection safeGetProtectionField() {
if (!isSheetProtectionEnabled()) {
return worksheet.addNewSheetProtection();

+ 24
- 0
poi-ooxml/src/test/java/org/apache/poi/xssf/usermodel/TestXSSFSheet.java View File

@@ -2253,4 +2253,28 @@ public final class TestXSSFSheet extends BaseTestXSheet {
assertTrue(row2.getZeroHeight());
}
}

@Test
void testBug64536() throws IOException {
try (
XSSFWorkbook xssfWorkbook = (XSSFWorkbook) _testDataProvider.openSampleWorkbook("1_NoIden.xlsx");
UnsynchronizedByteArrayOutputStream bos = new UnsynchronizedByteArrayOutputStream()
) {
XSSFSheet fileSheet = xssfWorkbook.getSheetAt(0);
assertEquals(CellRangeAddress.valueOf("B1:D9"), fileSheet.getDimension());

// Create Row and Cell, Then Set a Value
// 5, 2, 4 is just random number for test
Row fileRow = fileSheet.createRow(5);
Cell fileCell = fileRow.createCell(2, CellType.STRING);
fileCell.setCellValue("TEST VALUE");

xssfWorkbook.write(bos);

try (XSSFWorkbook xssfWorkbook2 = new XSSFWorkbook(bos.toInputStream())) {
XSSFSheet xssfSheet = xssfWorkbook2.getSheetAt(0);
assertEquals(CellRangeAddress.valueOf("B1:F9"), xssfSheet.getDimension());
}
}
}
}

BIN
test-data/spreadsheet/1_NoIden.xlsx View File


Loading…
Cancel
Save