aboutsummaryrefslogtreecommitdiffstats
path: root/src/ooxml/testcases/org
diff options
context:
space:
mode:
authorAndreas Beeker <kiwiwings@apache.org>2015-11-01 03:23:16 +0000
committerAndreas Beeker <kiwiwings@apache.org>2015-11-01 03:23:16 +0000
commit5fd534c44bb95d55c3b6b84a2e11df35221f48b4 (patch)
treec98047ff2a72a6580e2fb2b9eb04676f803f8161 /src/ooxml/testcases/org
parent944253c7864f923abb3532c401aacb72ad5df0cb (diff)
downloadpoi-5fd534c44bb95d55c3b6b84a2e11df35221f48b4.tar.gz
poi-5fd534c44bb95d55c3b6b84a2e11df35221f48b4.zip
findbugs fixes
close resources in tests git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1711712 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/ooxml/testcases/org')
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFRow.java14
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java111
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRow.java9
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetShiftRows.java43
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java554
5 files changed, 401 insertions, 330 deletions
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFRow.java b/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFRow.java
index 9533215a71..3ebedd6fae 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFRow.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFRow.java
@@ -19,9 +19,13 @@
package org.apache.poi.xssf.streaming;
+import java.io.IOException;
+
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.BaseTestRow;
import org.apache.poi.xssf.SXSSFITestDataProvider;
+import org.junit.After;
+import org.junit.Test;
/**
* Tests for XSSFRow
@@ -33,16 +37,18 @@ public final class TestSXSSFRow extends BaseTestRow {
}
- @Override
- public void tearDown(){
+ @After
+ public void tearDown() {
SXSSFITestDataProvider.instance.cleanup();
}
- public void testRowBounds() {
+ @Test
+ public void testRowBounds() throws IOException {
baseTestRowBounds(SpreadsheetVersion.EXCEL2007.getLastRowIndex());
}
- public void testCellBounds() {
+ @Test
+ public void testCellBounds() throws IOException {
baseTestCellBounds(SpreadsheetVersion.EXCEL2007.getLastColumnIndex());
}
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java b/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java
index 6540e049d5..230db006ea 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java
@@ -62,7 +62,7 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
*/
@Override
@Test
- public void cloneSheet() {
+ public void cloneSheet() throws IOException {
try {
super.cloneSheet();
fail("expected exception");
@@ -83,27 +83,27 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
@Test
public void existingWorkbook() throws IOException {
- XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
- xssfWorkbook.createSheet("S1");
- SXSSFWorkbook wb = new SXSSFWorkbook(xssfWorkbook);
- try {
- xssfWorkbook = (XSSFWorkbook) SXSSFITestDataProvider.instance.writeOutAndReadBack(wb);
- assertTrue(wb.dispose());
-
- wb = new SXSSFWorkbook(xssfWorkbook);
- assertEquals(1, wb.getNumberOfSheets());
- Sheet sheet = wb.getSheetAt(0);
- assertNotNull(sheet);
- assertEquals("S1", sheet.getSheetName());
- } finally {
- assertTrue(wb.dispose());
- wb.close();
- }
-
+ XSSFWorkbook xssfWb1 = new XSSFWorkbook();
+ xssfWb1.createSheet("S1");
+ @SuppressWarnings("resource")
+ SXSSFWorkbook wb1 = new SXSSFWorkbook(xssfWb1);
+ XSSFWorkbook xssfWb2 = (XSSFWorkbook) SXSSFITestDataProvider.instance.writeOutAndReadBack(wb1);
+ assertTrue(wb1.dispose());
+
+ @SuppressWarnings("resource")
+ SXSSFWorkbook wb2 = new SXSSFWorkbook(xssfWb2);
+ assertEquals(1, wb2.getNumberOfSheets());
+ Sheet sheet = wb2.getSheetAt(0);
+ assertNotNull(sheet);
+ assertEquals("S1", sheet.getSheetName());
+ assertTrue(wb2.dispose());
+ xssfWb2.close();
+ xssfWb1.close();
}
@Test
public void useSharedStringsTable() throws Exception {
+ @SuppressWarnings("resource")
SXSSFWorkbook wb = new SXSSFWorkbook(null, 10, false, true);
Field f = SXSSFWorkbook.class.getDeclaredField("_sharedStringSource");
@@ -137,44 +137,49 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
cell = row.getCell(2);
assertNotNull(cell);
assertEquals("A", cell.getStringCellValue());
+
+ xssfWorkbook.close();
}
@Test
- public void addToExistingWorkbook() {
- XSSFWorkbook xssfWorkbook = new XSSFWorkbook();
- xssfWorkbook.createSheet("S1");
- Sheet sheet = xssfWorkbook.createSheet("S2");
+ public void addToExistingWorkbook() throws IOException {
+ XSSFWorkbook xssfWb1 = new XSSFWorkbook();
+ xssfWb1.createSheet("S1");
+ Sheet sheet = xssfWb1.createSheet("S2");
Row row = sheet.createRow(1);
Cell cell = row.createCell(1);
cell.setCellValue("value 2_1_1");
- SXSSFWorkbook wb = new SXSSFWorkbook(xssfWorkbook);
- xssfWorkbook = (XSSFWorkbook) SXSSFITestDataProvider.instance.writeOutAndReadBack(wb);
- assertTrue(wb.dispose());
-
- wb = new SXSSFWorkbook(xssfWorkbook);
+ @SuppressWarnings("resource")
+ SXSSFWorkbook wb1 = new SXSSFWorkbook(xssfWb1);
+ XSSFWorkbook xssfWb2 = (XSSFWorkbook) SXSSFITestDataProvider.instance.writeOutAndReadBack(wb1);
+ assertTrue(wb1.dispose());
+ xssfWb1.close();
+ SXSSFWorkbook wb2 = new SXSSFWorkbook(xssfWb2);
// Add a row to the existing empty sheet
- Sheet sheet1 = wb.getSheetAt(0);
+ Sheet sheet1 = wb2.getSheetAt(0);
Row row1_1 = sheet1.createRow(1);
Cell cell1_1_1 = row1_1.createCell(1);
cell1_1_1.setCellValue("value 1_1_1");
// Add a row to the existing non-empty sheet
- Sheet sheet2 = wb.getSheetAt(1);
+ Sheet sheet2 = wb2.getSheetAt(1);
Row row2_2 = sheet2.createRow(2);
Cell cell2_2_1 = row2_2.createCell(1);
cell2_2_1.setCellValue("value 2_2_1");
// Add a sheet with one row
- Sheet sheet3 = wb.createSheet("S3");
+ Sheet sheet3 = wb2.createSheet("S3");
Row row3_1 = sheet3.createRow(1);
Cell cell3_1_1 = row3_1.createCell(1);
cell3_1_1.setCellValue("value 3_1_1");
- xssfWorkbook = (XSSFWorkbook) SXSSFITestDataProvider.instance.writeOutAndReadBack(wb);
- assertEquals(3, xssfWorkbook.getNumberOfSheets());
+ XSSFWorkbook xssfWb3 = (XSSFWorkbook) SXSSFITestDataProvider.instance.writeOutAndReadBack(wb2);
+ wb2.close();
+
+ assertEquals(3, xssfWb3.getNumberOfSheets());
// Verify sheet 1
- sheet1 = xssfWorkbook.getSheetAt(0);
+ sheet1 = xssfWb3.getSheetAt(0);
assertEquals("S1", sheet1.getSheetName());
assertEquals(1, sheet1.getPhysicalNumberOfRows());
row1_1 = sheet1.getRow(1);
@@ -183,7 +188,7 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
assertNotNull(cell1_1_1);
assertEquals("value 1_1_1", cell1_1_1.getStringCellValue());
// Verify sheet 2
- sheet2 = xssfWorkbook.getSheetAt(1);
+ sheet2 = xssfWb3.getSheetAt(1);
assertEquals("S2", sheet2.getSheetName());
assertEquals(2, sheet2.getPhysicalNumberOfRows());
Row row2_1 = sheet2.getRow(1);
@@ -197,7 +202,7 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
assertNotNull(cell2_2_1);
assertEquals("value 2_2_1", cell2_2_1.getStringCellValue());
// Verify sheet 3
- sheet3 = xssfWorkbook.getSheetAt(2);
+ sheet3 = xssfWb3.getSheetAt(2);
assertEquals("S3", sheet3.getSheetName());
assertEquals(1, sheet3.getPhysicalNumberOfRows());
row3_1 = sheet3.getRow(1);
@@ -205,6 +210,9 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
cell3_1_1 = row3_1.getCell(1);
assertNotNull(cell3_1_1);
assertEquals("value 3_1_1", cell3_1_1.getStringCellValue());
+
+ xssfWb2.close();
+ xssfWb3.close();
}
@Test
@@ -239,11 +247,12 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
assertTrue(wb.dispose());
wb.close();
-
+ xssfWorkbook.close();
}
@Test
- public void gzipSheetdataWriter(){
+ public void gzipSheetdataWriter() throws IOException {
+ @SuppressWarnings("resource")
SXSSFWorkbook wb = new SXSSFWorkbook();
wb.setCompressTempFiles(true);
int rowNum = 1000;
@@ -282,7 +291,7 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
}
assertTrue(wb.dispose());
-
+ xwb.close();
}
static void assertWorkbookDispose(SXSSFWorkbook wb)
@@ -315,33 +324,37 @@ public final class TestSXSSFWorkbook extends BaseTestWorkbook {
}
}
+ @SuppressWarnings("resource")
@Test
public void workbookDispose()
{
- SXSSFWorkbook wb = new SXSSFWorkbook();
+ SXSSFWorkbook wb1 = new SXSSFWorkbook();
// the underlying writer is SheetDataWriter
- assertWorkbookDispose(wb);
+ assertWorkbookDispose(wb1);
- wb = new SXSSFWorkbook();
- wb.setCompressTempFiles(true);
+ SXSSFWorkbook wb2 = new SXSSFWorkbook();
+ wb2.setCompressTempFiles(true);
// the underlying writer is GZIPSheetDataWriter
- assertWorkbookDispose(wb);
+ assertWorkbookDispose(wb2);
}
// currently writing the same sheet multiple times is not supported...
@Ignore
public void bug53515() throws Exception {
- Workbook wb = new SXSSFWorkbook(10);
- populateWorkbook(wb);
- saveTwice(wb);
- wb = new XSSFWorkbook();
- populateWorkbook(wb);
- saveTwice(wb);
+ Workbook wb1 = new SXSSFWorkbook(10);
+ populateWorkbook(wb1);
+ saveTwice(wb1);
+ Workbook wb2 = new XSSFWorkbook();
+ populateWorkbook(wb2);
+ saveTwice(wb2);
+ wb2.close();
+ wb1.close();
}
// Crashes the JVM because of documented JVM behavior with concurrent writing/reading of zip-files
// See http://www.oracle.com/technetwork/java/javase/documentation/overview-156328.html
+ @SuppressWarnings("resource")
@Ignore
public void bug53515a() throws Exception {
File out = new File("Test.xlsx");
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRow.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRow.java
index 81f9ce8119..79a820b688 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRow.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFRow.java
@@ -17,9 +17,12 @@
package org.apache.poi.xssf.usermodel;
+import java.io.IOException;
+
import org.apache.poi.ss.SpreadsheetVersion;
import org.apache.poi.ss.usermodel.BaseTestRow;
import org.apache.poi.xssf.XSSFITestDataProvider;
+import org.junit.Test;
/**
* Tests for XSSFRow
@@ -30,11 +33,13 @@ public final class TestXSSFRow extends BaseTestRow {
super(XSSFITestDataProvider.instance);
}
- public void testRowBounds() {
+ @Test
+ public void testRowBounds() throws IOException {
baseTestRowBounds(SpreadsheetVersion.EXCEL2007.getLastRowIndex());
}
- public void testCellBounds() {
+ @Test
+ public void testCellBounds() throws IOException {
baseTestCellBounds(SpreadsheetVersion.EXCEL2007.getLastColumnIndex());
}
}
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetShiftRows.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetShiftRows.java
index d1d948d33a..159e256b6a 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetShiftRows.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheetShiftRows.java
@@ -17,6 +17,8 @@
package org.apache.poi.xssf.usermodel;
+import static org.junit.Assert.*;
+
import java.io.IOException;
import org.apache.poi.ss.usermodel.BaseTestSheetShiftRows;
@@ -33,6 +35,7 @@ import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.util.CellUtil;
import org.apache.poi.xssf.XSSFITestDataProvider;
import org.apache.poi.xssf.XSSFTestDataSamples;
+import org.junit.Test;
/**
* @author Yegor Kozlov
@@ -44,23 +47,27 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
}
@Override
+ @Test
public void testShiftRowBreaks() { // disabled test from superclass
// TODO - support shifting of page breaks
}
+ @Test
public void testBug54524() throws IOException {
XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("54524.xlsx");
XSSFSheet sheet = workbook.getSheetAt(0);
sheet.shiftRows(3, 5, -1);
Cell cell = CellUtil.getCell(sheet.getRow(1), 0);
- assertEquals(1.0, cell.getNumericCellValue());
+ assertEquals(1.0, cell.getNumericCellValue(), 0);
cell = CellUtil.getCell(sheet.getRow(2), 0);
assertEquals("SUM(A2:A2)", cell.getCellFormula());
cell = CellUtil.getCell(sheet.getRow(3), 0);
assertEquals("X", cell.getStringCellValue());
+ workbook.close();
}
+ @Test
public void testBug53798() throws IOException {
// NOTE that for HSSF (.xls) negative shifts combined with positive ones do work as expected
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("53798.xlsx");
@@ -88,6 +95,7 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
//saveReport(wb, new File("/tmp/53798.xlsx"));
Workbook read = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ wb.close();
assertNotNull(read);
Sheet readSheet = read.getSheetAt(0);
@@ -100,6 +108,7 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
verifyCellContent(readSheet, 6, null);
verifyCellContent(readSheet, 7, "6.0");
verifyCellContent(readSheet, 8, "7.0");
+ read.close();
}
private void verifyCellContent(Sheet readSheet, int row, String expect) {
@@ -116,6 +125,7 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
}
}
+ @Test
public void testBug53798a() throws IOException {
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("53798.xlsx");
@@ -128,6 +138,7 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
//saveReport(wb, new File("/tmp/53798.xlsx"));
Workbook read = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ wb.close();
assertNotNull(read);
Sheet readSheet = read.getSheetAt(0);
@@ -140,8 +151,10 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
verifyCellContent(readSheet, 6, null);
verifyCellContent(readSheet, 7, "6.0");
verifyCellContent(readSheet, 8, "8.0");
+ read.close();
}
+ @Test
public void testBug56017() throws IOException {
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("56017.xlsx");
@@ -172,6 +185,7 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
// }
Workbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ wb.close();
assertNotNull(wbBack);
Sheet sheetBack = wbBack.getSheetAt(0);
@@ -185,23 +199,28 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
assertNotNull(comment);
assertEquals("Amdocs", comment.getAuthor());
assertEquals("Amdocs:\ntest\n", comment.getString().getString());
+ wbBack.close();
}
- public void test57171() throws Exception {
+ @Test
+ public void test57171() throws IOException {
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("57171_57163_57165.xlsx");
assertEquals(5, wb.getActiveSheetIndex());
removeAllSheetsBut(5, wb); // 5 is the active / selected sheet
assertEquals(0, wb.getActiveSheetIndex());
Workbook wbRead = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ wb.close();
assertEquals(0, wbRead.getActiveSheetIndex());
wbRead.removeSheetAt(0);
assertEquals(0, wbRead.getActiveSheetIndex());
//wb.write(new FileOutputStream("/tmp/57171.xls"));
+ wbRead.close();
}
+ @Test
public void test57163() throws IOException {
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("57171_57163_57165.xlsx");
assertEquals(5, wb.getActiveSheetIndex());
@@ -209,9 +228,11 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
assertEquals(4, wb.getActiveSheetIndex());
//wb.write(new FileOutputStream("/tmp/57163.xls"));
+ wb.close();
}
- public void testSetSheetOrderAndAdjustActiveSheet() throws Exception {
+ @Test
+ public void testSetSheetOrderAndAdjustActiveSheet() throws IOException {
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("57171_57163_57165.xlsx");
assertEquals(5, wb.getActiveSheetIndex());
@@ -256,9 +277,12 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
wb.setSheetOrder(wb.getSheetName(0), 5);
assertEquals(5, wb.getActiveSheetIndex());
+
+ wb.close();
}
- public void testRemoveSheetAndAdjustActiveSheet() throws Exception {
+ @Test
+ public void testRemoveSheetAndAdjustActiveSheet() throws IOException {
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("57171_57163_57165.xlsx");
assertEquals(5, wb.getActiveSheetIndex());
@@ -297,10 +321,13 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
wb.removeSheetAt(0);
assertEquals(0, wb.getActiveSheetIndex());
+
+ wb.close();
}
// TODO: enable when bug 57165 is fixed
- public void disabled_test57165() throws IOException {
+ @Test
+ public void test57165() throws IOException {
Workbook wb = XSSFTestDataSamples.openSampleWorkbook("57171_57163_57165.xlsx");
assertEquals(5, wb.getActiveSheetIndex());
removeAllSheetsBut(3, wb);
@@ -312,6 +339,7 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
assertEquals(0, wb.getActiveSheetIndex());
//wb.write(new FileOutputStream("/tmp/57165.xls"));
+ wb.close();
}
// public void test57165b() throws IOException {
@@ -324,8 +352,7 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
// }
// }
- private static void removeAllSheetsBut(int sheetIndex, Workbook wb)
- {
+ private static void removeAllSheetsBut(int sheetIndex, Workbook wb) {
int sheetNb = wb.getNumberOfSheets();
// Move this sheet at the first position
wb.setSheetOrder(wb.getSheetName(sheetIndex), 0);
@@ -338,6 +365,7 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
}
}
+ @Test
public void testBug57828_OnlyOneCommentShiftedInRow() throws IOException {
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("57828.xlsx");
XSSFSheet sheet = wb.getSheetAt(0);
@@ -372,6 +400,7 @@ public final class TestXSSFSheetShiftRows extends BaseTestSheetShiftRows {
wb.close();
}
+ @Test
public void testBug46742_shiftHyperlinks() throws IOException {
XSSFWorkbook wb = new XSSFWorkbook();
Sheet sheet = wb.createSheet("test");
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
index 1378cd4fa5..cc37c81532 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFWorkbook.java
@@ -38,6 +38,7 @@ import java.util.zip.CRC32;
import org.apache.poi.POIXMLProperties;
import org.apache.poi.hssf.HSSFTestDataSamples;
+import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.ContentTypes;
import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.openxml4j.opc.PackageAccess;
@@ -83,36 +84,35 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
* Tests that we can save, and then re-load a new document
*/
@Test
- public void saveLoadNew() throws Exception {
- @SuppressWarnings("resource")
- XSSFWorkbook workbook = new XSSFWorkbook();
+ public void saveLoadNew() throws IOException, InvalidFormatException {
+ XSSFWorkbook wb1 = new XSSFWorkbook();
//check that the default date system is set to 1900
- CTWorkbookPr pr = workbook.getCTWorkbook().getWorkbookPr();
+ CTWorkbookPr pr = wb1.getCTWorkbook().getWorkbookPr();
assertNotNull(pr);
assertTrue(pr.isSetDate1904());
assertFalse("XSSF must use the 1900 date system", pr.getDate1904());
- Sheet sheet1 = workbook.createSheet("sheet1");
- Sheet sheet2 = workbook.createSheet("sheet2");
- workbook.createSheet("sheet3");
+ Sheet sheet1 = wb1.createSheet("sheet1");
+ Sheet sheet2 = wb1.createSheet("sheet2");
+ wb1.createSheet("sheet3");
- RichTextString rts = workbook.getCreationHelper().createRichTextString("hello world");
+ RichTextString rts = wb1.getCreationHelper().createRichTextString("hello world");
sheet1.createRow(0).createCell((short)0).setCellValue(1.2);
sheet1.createRow(1).createCell((short)0).setCellValue(rts);
sheet2.createRow(0);
- assertEquals(0, workbook.getSheetAt(0).getFirstRowNum());
- assertEquals(1, workbook.getSheetAt(0).getLastRowNum());
- assertEquals(0, workbook.getSheetAt(1).getFirstRowNum());
- assertEquals(0, workbook.getSheetAt(1).getLastRowNum());
- assertEquals(0, workbook.getSheetAt(2).getFirstRowNum());
- assertEquals(0, workbook.getSheetAt(2).getLastRowNum());
+ assertEquals(0, wb1.getSheetAt(0).getFirstRowNum());
+ assertEquals(1, wb1.getSheetAt(0).getLastRowNum());
+ assertEquals(0, wb1.getSheetAt(1).getFirstRowNum());
+ assertEquals(0, wb1.getSheetAt(1).getLastRowNum());
+ assertEquals(0, wb1.getSheetAt(2).getFirstRowNum());
+ assertEquals(0, wb1.getSheetAt(2).getLastRowNum());
File file = TempFile.createTempFile("poi-", ".xlsx");
OutputStream out = new FileOutputStream(file);
- workbook.write(out);
+ wb1.write(out);
out.close();
// Check the package contains what we'd expect it to
@@ -128,26 +128,27 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
// Links to the three sheets, shared strings and styles
assertTrue(wbPart.hasRelationships());
assertEquals(5, wbPart.getRelationships().size());
- workbook.close();
-
+ wb1.close();
+
// Load back the XSSFWorkbook
- workbook = new XSSFWorkbook(pkg);
- assertEquals(3, workbook.getNumberOfSheets());
- assertNotNull(workbook.getSheetAt(0));
- assertNotNull(workbook.getSheetAt(1));
- assertNotNull(workbook.getSheetAt(2));
+ @SuppressWarnings("resource")
+ XSSFWorkbook wb2 = new XSSFWorkbook(pkg);
+ assertEquals(3, wb2.getNumberOfSheets());
+ assertNotNull(wb2.getSheetAt(0));
+ assertNotNull(wb2.getSheetAt(1));
+ assertNotNull(wb2.getSheetAt(2));
- assertNotNull(workbook.getSharedStringSource());
- assertNotNull(workbook.getStylesSource());
+ assertNotNull(wb2.getSharedStringSource());
+ assertNotNull(wb2.getStylesSource());
- assertEquals(0, workbook.getSheetAt(0).getFirstRowNum());
- assertEquals(1, workbook.getSheetAt(0).getLastRowNum());
- assertEquals(0, workbook.getSheetAt(1).getFirstRowNum());
- assertEquals(0, workbook.getSheetAt(1).getLastRowNum());
- assertEquals(0, workbook.getSheetAt(2).getFirstRowNum());
- assertEquals(0, workbook.getSheetAt(2).getLastRowNum());
+ assertEquals(0, wb2.getSheetAt(0).getFirstRowNum());
+ assertEquals(1, wb2.getSheetAt(0).getLastRowNum());
+ assertEquals(0, wb2.getSheetAt(1).getFirstRowNum());
+ assertEquals(0, wb2.getSheetAt(1).getLastRowNum());
+ assertEquals(0, wb2.getSheetAt(2).getFirstRowNum());
+ assertEquals(0, wb2.getSheetAt(2).getLastRowNum());
- sheet1 = workbook.getSheetAt(0);
+ sheet1 = wb2.getSheetAt(0);
assertEquals(1.2, sheet1.getRow(0).getCell(0).getNumericCellValue(), 0.0001);
assertEquals("hello world", sheet1.getRow(1).getCell(0).getRichStringCellValue().getString());
@@ -171,6 +172,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
assertEquals(6, wbPart.getRelationships().size());
pkg.close();
+ workbook.close();
}
@Test
@@ -181,7 +183,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
//get default style
CellStyle cellStyleAt = workbook.getCellStyleAt(i);
assertNotNull(cellStyleAt);
-
+
//get custom style
StylesTable styleSource = workbook.getStylesSource();
XSSFCellStyle customStyle = new XSSFCellStyle(styleSource);
@@ -205,7 +207,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
//get default font
Font fontAt = workbook.getFontAt(i);
assertNotNull(fontAt);
-
+
//get customized font
XSSFFont customFont = new XSSFFont();
customFont.setItalic(true);
@@ -230,7 +232,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
}
@Test
- public void loadSave() {
+ public void loadSave() throws IOException {
XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
assertEquals(3, workbook.getNumberOfSheets());
assertEquals("dd/mm/yyyy", workbook.getSheetAt(0).getRow(1).getCell(0).getRichStringCellValue().getString());
@@ -251,13 +253,16 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
assertEquals("yy/mm/dd", wb2.getSheetAt(0).getRow(4).getCell(0).getRichStringCellValue().getString());
assertNotNull(wb2.getSharedStringSource());
assertNotNull(wb2.getStylesSource());
+
+ workbook.close();
+ wb2.close();
}
@Test
- public void styles() {
- XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
+ public void styles() throws IOException {
+ XSSFWorkbook wb1 = XSSFTestDataSamples.openSampleWorkbook("Formatting.xlsx");
- StylesTable ss = workbook.getStylesSource();
+ StylesTable ss = wb1.getStylesSource();
assertNotNull(ss);
StylesTable st = ss;
@@ -281,15 +286,17 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
// Save, load back in again, and check
- workbook = XSSFTestDataSamples.writeOutAndReadBack(workbook);
+ XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb1);
+ wb1.close();
- ss = workbook.getStylesSource();
+ ss = wb2.getStylesSource();
assertNotNull(ss);
assertEquals(10, st._getNumberFormatSize());
assertEquals(2, st.getFonts().size());
assertEquals(2, st.getFills().size());
assertEquals(1, st.getBorders().size());
+ wb2.close();
}
@Test
@@ -300,7 +307,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
assertEquals(1, sheetId);
sheetId = (int)wb.createSheet().sheet.getSheetId();
assertEquals(2, sheetId);
-
+
//test file with gaps in the sheetId sequence
XSSFWorkbook wbBack = XSSFTestDataSamples.openSampleWorkbook("47089.xlsm");
try {
@@ -317,7 +324,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
/**
* Test setting of core properties such as Title and Author
- * @throws IOException
+ * @throws IOException
*/
@Test
public void workbookProperties() throws IOException {
@@ -327,19 +334,20 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
assertNotNull(props);
//the Application property must be set for new workbooks, see Bugzilla #47559
assertEquals("Apache POI", props.getExtendedProperties().getUnderlyingProperties().getApplication());
-
+
PackagePropertiesPart opcProps = props.getCoreProperties().getUnderlyingProperties();
assertNotNull(opcProps);
-
+
opcProps.setTitleProperty("Testing Bugzilla #47460");
assertEquals("Apache POI", opcProps.getCreatorProperty().getValue());
opcProps.setCreatorProperty("poi-dev@poi.apache.org");
-
+
XSSFWorkbook wbBack = XSSFTestDataSamples.writeOutAndReadBack(workbook);
assertEquals("Apache POI", wbBack.getProperties().getExtendedProperties().getUnderlyingProperties().getApplication());
opcProps = wbBack.getProperties().getCoreProperties().getUnderlyingProperties();
assertEquals("Testing Bugzilla #47460", opcProps.getTitleProperty().getValue());
assertEquals("poi-dev@poi.apache.org", opcProps.getCreatorProperty().getValue());
+ wbBack.close();
} finally {
workbook.close();
}
@@ -380,13 +388,14 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
crc1.update(data1);
assertEquals(crc0.getValue(), crc1.getValue());
+ workbook.close();
}
/**
* When deleting a sheet make sure that we adjust sheet indices of named ranges
*/
@Test
- public void bug47737() {
+ public void bug47737() throws IOException {
XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("47737.xlsx");
assertEquals(2, wb.getNumberOfNames());
assertNotNull(wb.getCalculationChain());
@@ -406,6 +415,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
assertEquals(0, nm2.getCTName().getLocalSheetId());
//calculation chain is removed as well
assertNull(wb.getCalculationChain());
+ wb.close();
}
@@ -413,27 +423,29 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
* Problems with XSSFWorkbook.removeSheetAt when workbook contains charts
*/
@Test
- public void bug47813() {
- XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("47813.xlsx");
- assertEquals(3, wb.getNumberOfSheets());
- assertNotNull(wb.getCalculationChain());
+ public void bug47813() throws IOException {
+ XSSFWorkbook wb1 = XSSFTestDataSamples.openSampleWorkbook("47813.xlsx");
+ assertEquals(3, wb1.getNumberOfSheets());
+ assertNotNull(wb1.getCalculationChain());
- assertEquals("Numbers", wb.getSheetName(0));
+ assertEquals("Numbers", wb1.getSheetName(0));
//the second sheet is of type 'chartsheet'
- assertEquals("Chart", wb.getSheetName(1));
- assertTrue(wb.getSheetAt(1) instanceof XSSFChartSheet);
- assertEquals("SomeJunk", wb.getSheetName(2));
-
- wb.removeSheetAt(2);
- assertEquals(2, wb.getNumberOfSheets());
- assertNull(wb.getCalculationChain());
-
- wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
- assertEquals(2, wb.getNumberOfSheets());
- assertNull(wb.getCalculationChain());
-
- assertEquals("Numbers", wb.getSheetName(0));
- assertEquals("Chart", wb.getSheetName(1));
+ assertEquals("Chart", wb1.getSheetName(1));
+ assertTrue(wb1.getSheetAt(1) instanceof XSSFChartSheet);
+ assertEquals("SomeJunk", wb1.getSheetName(2));
+
+ wb1.removeSheetAt(2);
+ assertEquals(2, wb1.getNumberOfSheets());
+ assertNull(wb1.getCalculationChain());
+
+ XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb1);
+ assertEquals(2, wb2.getNumberOfSheets());
+ assertNull(wb2.getCalculationChain());
+
+ assertEquals("Numbers", wb2.getSheetName(0));
+ assertEquals("Chart", wb2.getSheetName(1));
+ wb2.close();
+ wb1.close();
}
/**
@@ -441,33 +453,33 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
* coming out wrong
*/
@Test
- public void bug49702() throws Exception {
+ public void bug49702() throws IOException {
// First try with a new file
- XSSFWorkbook wb = new XSSFWorkbook();
+ XSSFWorkbook wb1 = new XSSFWorkbook();
// Should have one style
- assertEquals(1, wb.getNumCellStyles());
- wb.getCellStyleAt((short)0);
+ assertEquals(1, wb1.getNumCellStyles());
+ wb1.getCellStyleAt((short)0);
try {
- wb.getCellStyleAt((short)1);
+ wb1.getCellStyleAt((short)1);
fail("Shouldn't be able to get style at 1 that doesn't exist");
} catch(IndexOutOfBoundsException e) {}
// Add another one
- CellStyle cs = wb.createCellStyle();
+ CellStyle cs = wb1.createCellStyle();
cs.setDataFormat((short)11);
// Re-check
- assertEquals(2, wb.getNumCellStyles());
- wb.getCellStyleAt((short)0);
- wb.getCellStyleAt((short)1);
+ assertEquals(2, wb1.getNumCellStyles());
+ wb1.getCellStyleAt((short)0);
+ wb1.getCellStyleAt((short)1);
try {
- wb.getCellStyleAt((short)2);
+ wb1.getCellStyleAt((short)2);
fail("Shouldn't be able to get style at 2 that doesn't exist");
} catch(IndexOutOfBoundsException e) {}
// Save and reload
- XSSFWorkbook nwb = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ XSSFWorkbook nwb = XSSFTestDataSamples.writeOutAndReadBack(wb1);
assertEquals(2, nwb.getNumCellStyles());
nwb.getCellStyleAt((short)0);
nwb.getCellStyleAt((short)1);
@@ -477,15 +489,19 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
} catch(IndexOutOfBoundsException e) {}
// Now with an existing file
- wb = XSSFTestDataSamples.openSampleWorkbook("sample.xlsx");
- assertEquals(3, wb.getNumCellStyles());
- wb.getCellStyleAt((short)0);
- wb.getCellStyleAt((short)1);
- wb.getCellStyleAt((short)2);
+ XSSFWorkbook wb2 = XSSFTestDataSamples.openSampleWorkbook("sample.xlsx");
+ assertEquals(3, wb2.getNumCellStyles());
+ wb2.getCellStyleAt((short)0);
+ wb2.getCellStyleAt((short)1);
+ wb2.getCellStyleAt((short)2);
try {
- wb.getCellStyleAt((short)3);
+ wb2.getCellStyleAt((short)3);
fail("Shouldn't be able to get style at 3 that doesn't exist");
} catch(IndexOutOfBoundsException e) {}
+
+ wb2.close();
+ wb1.close();
+ nwb.close();
}
@Test
@@ -495,20 +511,20 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
assertFalse(wb.getForceFormulaRecalculation());
CTWorkbook ctWorkbook = wb.getCTWorkbook();
assertFalse(ctWorkbook.isSetCalcPr());
-
+
wb.setForceFormulaRecalculation(true); // resets the EngineId flag to zero
-
+
CTCalcPr calcPr = ctWorkbook.getCalcPr();
assertNotNull(calcPr);
assertEquals(0, (int) calcPr.getCalcId());
-
+
calcPr.setCalcId(100);
assertTrue(wb.getForceFormulaRecalculation());
-
+
wb.setForceFormulaRecalculation(true); // resets the EngineId flag to zero
assertEquals(0, (int) calcPr.getCalcId());
assertFalse(wb.getForceFormulaRecalculation());
-
+
// calcMode="manual" is unset when forceFormulaRecalculation=true
calcPr.setCalcMode(STCalcMode.MANUAL);
wb.setForceFormulaRecalculation(true);
@@ -519,7 +535,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
}
@Test
- public void changeSheetNameWithSharedFormulas() {
+ public void changeSheetNameWithSharedFormulas() throws IOException {
changeSheetNameWithSharedFormulas("shared_formulas.xlsx");
}
@@ -549,7 +565,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
sheet = workbook.createSheet();
sheet.setColumnWidth(4, 5000);
sheet.setColumnWidth(5, 5000);
-
+
sheet.groupColumn((short) 4, (short) 5);
accessWorkbook(workbook);
@@ -562,6 +578,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
}
accessWorkbook(workbook);
+ workbook.close();
}
private void accessWorkbook(XSSFWorkbook workbook) {
@@ -573,39 +590,36 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
}
@Test
- public void bug48495() {
- try {
- Workbook wb = XSSFTestDataSamples.openSampleWorkbook("48495.xlsx");
-
- assertSheetOrder(wb, "Sheet1");
-
- Sheet sheet = wb.getSheetAt(0);
- sheet.shiftRows(2, sheet.getLastRowNum(), 1, true, false);
- Row newRow = sheet.getRow(2);
- if (newRow == null) newRow = sheet.createRow(2);
- newRow.createCell(0).setCellValue(" Another Header");
- wb.cloneSheet(0);
-
- assertSheetOrder(wb, "Sheet1", "Sheet1 (2)");
-
- // FileOutputStream fileOut = new FileOutputStream("/tmp/bug48495.xlsx");
+ public void bug48495() throws IOException {
+ Workbook wb = XSSFTestDataSamples.openSampleWorkbook("48495.xlsx");
+
+ assertSheetOrder(wb, "Sheet1");
+
+ Sheet sheet = wb.getSheetAt(0);
+ sheet.shiftRows(2, sheet.getLastRowNum(), 1, true, false);
+ Row newRow = sheet.getRow(2);
+ if (newRow == null) newRow = sheet.createRow(2);
+ newRow.createCell(0).setCellValue(" Another Header");
+ wb.cloneSheet(0);
+
+ assertSheetOrder(wb, "Sheet1", "Sheet1 (2)");
+
+ // FileOutputStream fileOut = new FileOutputStream("/tmp/bug48495.xlsx");
// try {
// wb.write(fileOut);
// } finally {
// fileOut.close();
// }
-
- Workbook read = XSSFTestDataSamples.writeOutAndReadBack(wb);
- assertNotNull(read);
- assertSheetOrder(read, "Sheet1", "Sheet1 (2)");
- } catch (Exception e) {
- e.printStackTrace();
- }
- System.out.println("Done");
+
+ Workbook read = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ assertNotNull(read);
+ assertSheetOrder(read, "Sheet1", "Sheet1 (2)");
+ read.close();
+ wb.close();
}
-
+
@Test
- public void bug47090a() {
+ public void bug47090a() throws IOException {
Workbook workbook = XSSFTestDataSamples.openSampleWorkbook("47090.xlsx");
assertSheetOrder(workbook, "Sheet1", "Sheet2");
workbook.removeSheetAt(0);
@@ -614,10 +628,12 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
assertSheetOrder(workbook, "Sheet2", "Sheet1");
Workbook read = XSSFTestDataSamples.writeOutAndReadBack(workbook);
assertSheetOrder(read, "Sheet2", "Sheet1");
+ read.close();
+ workbook.close();
}
-
+
@Test
- public void bug47090b() {
+ public void bug47090b() throws IOException {
Workbook workbook = XSSFTestDataSamples.openSampleWorkbook("47090.xlsx");
assertSheetOrder(workbook, "Sheet1", "Sheet2");
workbook.removeSheetAt(1);
@@ -626,39 +642,45 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
assertSheetOrder(workbook, "Sheet1", "Sheet0"); // Sheet0 because it uses "Sheet" + sheets.size() as starting point!
Workbook read = XSSFTestDataSamples.writeOutAndReadBack(workbook);
assertSheetOrder(read, "Sheet1", "Sheet0");
+ read.close();
+ workbook.close();
}
@Test
- public void bug47090c() {
+ public void bug47090c() throws IOException {
Workbook workbook = XSSFTestDataSamples.openSampleWorkbook("47090.xlsx");
assertSheetOrder(workbook, "Sheet1", "Sheet2");
workbook.removeSheetAt(0);
assertSheetOrder(workbook, "Sheet2");
- workbook.cloneSheet(0);
+ workbook.cloneSheet(0);
assertSheetOrder(workbook, "Sheet2", "Sheet2 (2)");
Workbook read = XSSFTestDataSamples.writeOutAndReadBack(workbook);
assertSheetOrder(read, "Sheet2", "Sheet2 (2)");
+ read.close();
+ workbook.close();
}
-
+
@Test
- public void bug47090d() {
+ public void bug47090d() throws IOException {
Workbook workbook = XSSFTestDataSamples.openSampleWorkbook("47090.xlsx");
assertSheetOrder(workbook, "Sheet1", "Sheet2");
workbook.createSheet();
assertSheetOrder(workbook, "Sheet1", "Sheet2", "Sheet0");
workbook.removeSheetAt(0);
assertSheetOrder(workbook, "Sheet2", "Sheet0");
- workbook.createSheet();
+ workbook.createSheet();
assertSheetOrder(workbook, "Sheet2", "Sheet0", "Sheet1");
Workbook read = XSSFTestDataSamples.writeOutAndReadBack(workbook);
assertSheetOrder(read, "Sheet2", "Sheet0", "Sheet1");
+ read.close();
+ workbook.close();
}
-
+
@Test
public void bug51158() throws IOException {
// create a workbook
- final XSSFWorkbook workbook = new XSSFWorkbook();
- XSSFSheet sheet = workbook.createSheet("Test Sheet");
+ final XSSFWorkbook wb1 = new XSSFWorkbook();
+ XSSFSheet sheet = wb1.createSheet("Test Sheet");
XSSFRow row = sheet.createRow(2);
XSSFCell cell = row.createCell(3);
cell.setCellValue("test1");
@@ -675,52 +697,59 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
// row.createCell(0).setCellStyle(cs);
// write the first excel file
- XSSFWorkbook readBack = XSSFTestDataSamples.writeOutAndReadBack(workbook);
- assertNotNull(readBack);
- assertEquals("test1", readBack.getSheetAt(0).getRow(2).getCell(3).getStringCellValue());
- assertNull(readBack.getSheetAt(0).getRow(2).getCell(4));
+ XSSFWorkbook wb2 = XSSFTestDataSamples.writeOutAndReadBack(wb1);
+ assertNotNull(wb2);
+ sheet = wb2.getSheetAt(0);
+ row = sheet.getRow(2);
+ assertEquals("test1", row.getCell(3).getStringCellValue());
+ assertNull(row.getCell(4));
// add a new cell to the sheet
cell = row.createCell(4);
cell.setCellValue("test2");
// write the second excel file
- readBack = XSSFTestDataSamples.writeOutAndReadBack(workbook);
- assertNotNull(readBack);
- assertEquals("test1", readBack.getSheetAt(0).getRow(2).getCell(3).getStringCellValue());
- assertEquals("test2", readBack.getSheetAt(0).getRow(2).getCell(4).getStringCellValue());
+ XSSFWorkbook wb3 = XSSFTestDataSamples.writeOutAndReadBack(wb2);
+ assertNotNull(wb3);
+ sheet = wb3.getSheetAt(0);
+ row = sheet.getRow(2);
+
+ assertEquals("test1", row.getCell(3).getStringCellValue());
+ assertEquals("test2", row.getCell(4).getStringCellValue());
+ wb3.close();
+ wb2.close();
+ wb1.close();
}
-
+
@Test
public void bug51158a() throws IOException {
// create a workbook
final XSSFWorkbook workbook = new XSSFWorkbook();
try {
workbook.createSheet("Test Sheet");
-
+
XSSFSheet sheetBack = workbook.getSheetAt(0);
-
+
// committing twice did add the XML twice without clearing the part in between
sheetBack.commit();
-
+
// ensure that a memory based package part does not have lingering data from previous commit() calls
if(sheetBack.getPackagePart() instanceof MemoryPackagePart) {
((MemoryPackagePart)sheetBack.getPackagePart()).clear();
}
-
+
sheetBack.commit();
-
+
String str = new String(IOUtils.toByteArray(sheetBack.getPackagePart().getInputStream()));
- System.out.println(str);
-
+
assertEquals(1, countMatches(str, "<worksheet"));
} finally {
workbook.close();
}
- }
-
+ }
+
private static final int INDEX_NOT_FOUND = -1;
-
+
private static boolean isEmpty(CharSequence cs) {
return cs == null || cs.length() == 0;
}
@@ -737,7 +766,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
}
return count;
}
-
+
private static int indexOf(CharSequence cs, CharSequence searchChar, int start) {
return cs.toString().indexOf(searchChar.toString(), start);
}
@@ -796,7 +825,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
XSSFWorkbook wb = new XSSFWorkbook();
try {
setPivotData(wb);
-
+
FileOutputStream fileOut = new FileOutputStream(file);
wb.write(fileOut);
fileOut.close();
@@ -810,7 +839,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
} finally {
wb2.close();
}
-
+
assertTrue(file.delete());
}
@@ -821,7 +850,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
XSSFWorkbook wb = new XSSFWorkbook();
try {
setPivotData(wb);
-
+
FileOutputStream fileOut = new FileOutputStream(file);
try {
wb.write(fileOut);
@@ -839,29 +868,29 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
} finally {
wb2.close();
}
-
+
assertTrue(file.delete());
}
-
+
@Test
public void testSetFirstVisibleTab_57373() throws IOException {
Workbook wb = new XSSFWorkbook();
-
+
try {
/*Sheet sheet1 =*/ wb.createSheet();
Sheet sheet2 = wb.createSheet();
int idx2 = wb.getSheetIndex(sheet2);
Sheet sheet3 = wb.createSheet();
int idx3 = wb.getSheetIndex(sheet3);
-
+
// add many sheets so "first visible" is relevant
for(int i = 0; i < 30;i++) {
wb.createSheet();
}
-
+
wb.setFirstVisibleTab(idx2);
wb.setActiveSheet(idx3);
-
+
//wb.write(new FileOutputStream(new File("C:\\temp\\test.xlsx")));
assertEquals(idx2, wb.getFirstVisibleTab());
@@ -873,6 +902,7 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
sheet3 = wbBack.getSheetAt(idx3);
assertEquals(idx2, wb.getFirstVisibleTab());
assertEquals(idx3, wb.getActiveSheetIndex());
+ wbBack.close();
} finally {
wb.close();
}
@@ -883,175 +913,163 @@ public final class TestXSSFWorkbook extends BaseTestWorkbook {
*/
@Test
public void testSetVBAProject() throws Exception {
- XSSFWorkbook workbook = null;
- OutputStream out = null;
File file;
final byte[] allBytes = new byte[256];
for (int i = 0; i < 256; i++) {
allBytes[i] = (byte) (i - 128);
}
- try {
- workbook = new XSSFWorkbook();
- workbook.createSheet();
- workbook.setVBAProject(new ByteArrayInputStream(allBytes));
- file = TempFile.createTempFile("poi-", ".xlsm");
- out = new FileOutputStream(file);
- workbook.write(out);
- }
- finally {
- IOUtils.closeQuietly(out);
- IOUtils.closeQuietly(workbook);
- }
- try {
- // Check the package contains what we'd expect it to
- OPCPackage pkg = OPCPackage.open(file.toString());
- PackagePart wbPart = pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
- assertTrue(wbPart.hasRelationships());
- final PackageRelationshipCollection relationships = wbPart.getRelationships().getRelationships(XSSFRelation.VBA_MACROS.getRelation());
- assertEquals(1, relationships.size());
- assertEquals(XSSFRelation.VBA_MACROS.getDefaultFileName(), relationships.getRelationship(0).getTargetURI().toString());
- PackagePart vbaPart = pkg.getPart(PackagingURIHelper.createPartName(XSSFRelation.VBA_MACROS.getDefaultFileName()));
- assertNotNull(vbaPart);
- assertFalse(vbaPart.isRelationshipPart());
- assertEquals(XSSFRelation.VBA_MACROS.getContentType(), vbaPart.getContentType());
- final byte[] fromFile = IOUtils.toByteArray(vbaPart.getInputStream());
- assertArrayEquals(allBytes, fromFile);
-
- // Load back the XSSFWorkbook just to check nothing explodes
- workbook = new XSSFWorkbook(pkg);
- assertEquals(1, workbook.getNumberOfSheets());
- assertEquals(XSSFWorkbookType.XLSM, workbook.getWorkbookType());
- }
- finally {
- IOUtils.closeQuietly(workbook);
- }
+ XSSFWorkbook wb1 = new XSSFWorkbook();
+ wb1.createSheet();
+ wb1.setVBAProject(new ByteArrayInputStream(allBytes));
+ file = TempFile.createTempFile("poi-", ".xlsm");
+ OutputStream out = new FileOutputStream(file);
+ wb1.write(out);
+ out.close();
+ wb1.close();
+
+ // Check the package contains what we'd expect it to
+ OPCPackage pkg = OPCPackage.open(file.toString());
+ PackagePart wbPart = pkg.getPart(PackagingURIHelper.createPartName("/xl/workbook.xml"));
+ assertTrue(wbPart.hasRelationships());
+ final PackageRelationshipCollection relationships = wbPart.getRelationships().getRelationships(XSSFRelation.VBA_MACROS.getRelation());
+ assertEquals(1, relationships.size());
+ assertEquals(XSSFRelation.VBA_MACROS.getDefaultFileName(), relationships.getRelationship(0).getTargetURI().toString());
+ PackagePart vbaPart = pkg.getPart(PackagingURIHelper.createPartName(XSSFRelation.VBA_MACROS.getDefaultFileName()));
+ assertNotNull(vbaPart);
+ assertFalse(vbaPart.isRelationshipPart());
+ assertEquals(XSSFRelation.VBA_MACROS.getContentType(), vbaPart.getContentType());
+ final byte[] fromFile = IOUtils.toByteArray(vbaPart.getInputStream());
+ assertArrayEquals(allBytes, fromFile);
+
+ // Load back the XSSFWorkbook just to check nothing explodes
+ @SuppressWarnings("resource")
+ XSSFWorkbook wb2 = new XSSFWorkbook(pkg);
+ assertEquals(1, wb2.getNumberOfSheets());
+ assertEquals(XSSFWorkbookType.XLSM, wb2.getWorkbookType());
+ pkg.close();
}
@Test
public void testBug54399() throws IOException {
XSSFWorkbook workbook = XSSFTestDataSamples.openSampleWorkbook("54399.xlsx");
-
- //System.out.println("sheets:" + workbook.getNumberOfSheets());
- for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
- //System.out.println("i:" + i);
+ for (int i = 0; i < workbook.getNumberOfSheets(); i++) {
workbook.setSheetName(i, "SheetRenamed" + (i + 1));
- }
+ }
-// FileOutputStream fileOutputStream = new FileOutputStream("/tmp/54399.xlsx");
-// workbook.write(fileOutputStream);
-// fileOutputStream.close();
+ workbook.close();
}
-
+
@SuppressWarnings("unchecked")
@Test
/**
* Iterator<XSSFSheet> XSSFWorkbook.iterator was committed in r700472 on 2008-09-30
* and has been replaced with Iterator<Sheet> XSSFWorkbook.iterator
- *
+ *
* In order to make code for looping over sheets in workbooks standard, regardless
* of the type of workbook (HSSFWorkbook, XSSFWorkbook, SXSSFWorkbook), the previously
* available Iterator<XSSFSheet> iterator and Iterator<XSSFSheet> sheetIterator
* have been replaced with Iterator<Sheet> {@link #iterator} and
* Iterator<Sheet> {@link #sheetIterator}. This makes iterating over sheets in a workbook
* similar to iterating over rows in a sheet and cells in a row.
- *
+ *
* Note: this breaks backwards compatibility! Existing codebases will need to
* upgrade their code with either of the following options presented in this test case.
- *
+ *
*/
- public void bug58245_XSSFSheetIterator() {
+ public void bug58245_XSSFSheetIterator() throws IOException {
final XSSFWorkbook wb = new XSSFWorkbook();
- try {
- wb.createSheet();
-
- // =====================================================================
- // Case 1: Existing code uses XSSFSheet for-each loop
- // =====================================================================
- // Original code (no longer valid)
- /*
- for (XSSFSheet sh : wb) {
- sh.createRow(0);
- }
- */
-
- // Option A:
- for (XSSFSheet sh : (Iterable<XSSFSheet>) (Iterable<? extends Sheet>) wb) {
- sh.createRow(0);
- }
-
- // Option B (preferred for new code):
- for (Sheet sh : wb) {
- sh.createRow(0);
- }
-
- // =====================================================================
- // Case 2: Existing code creates an iterator variable
- // =====================================================================
- // Original code (no longer valid)
- /*
- Iterator<XSSFSheet> it = wb.iterator();
+ wb.createSheet();
+
+ // =====================================================================
+ // Case 1: Existing code uses XSSFSheet for-each loop
+ // =====================================================================
+ // Original code (no longer valid)
+ /*
+ for (XSSFSheet sh : wb) {
+ sh.createRow(0);
+ }
+ */
+
+ // Option A:
+ for (XSSFSheet sh : (Iterable<XSSFSheet>) (Iterable<? extends Sheet>) wb) {
+ sh.createRow(0);
+ }
+
+ // Option B (preferred for new code):
+ for (Sheet sh : wb) {
+ sh.createRow(0);
+ }
+
+ // =====================================================================
+ // Case 2: Existing code creates an iterator variable
+ // =====================================================================
+ // Original code (no longer valid)
+ /*
+ Iterator<XSSFSheet> it = wb.iterator();
+ XSSFSheet sh = it.next();
+ sh.createRow(0);
+ */
+
+ // Option A:
+ {
+ Iterator<XSSFSheet> it = (Iterator<XSSFSheet>) (Iterator<? extends Sheet>) wb.iterator();
XSSFSheet sh = it.next();
sh.createRow(0);
- */
-
- // Option A:
- {
- Iterator<XSSFSheet> it = (Iterator<XSSFSheet>) (Iterator<? extends Sheet>) wb.iterator();
- XSSFSheet sh = it.next();
- sh.createRow(0);
- }
-
- // Option B:
- {
- @SuppressWarnings("deprecation")
- Iterator<XSSFSheet> it = wb.xssfSheetIterator();
- XSSFSheet sh = it.next();
- sh.createRow(0);
- }
-
- // Option C (preferred for new code):
- {
- Iterator<Sheet> it = wb.iterator();
- Sheet sh = it.next();
- sh.createRow(0);
- }
}
- finally {
- IOUtils.closeQuietly(wb);
+
+ // Option B:
+ {
+ @SuppressWarnings("deprecation")
+ Iterator<XSSFSheet> it = wb.xssfSheetIterator();
+ XSSFSheet sh = it.next();
+ sh.createRow(0);
}
- }
+
+ // Option C (preferred for new code):
+ {
+ Iterator<Sheet> it = wb.iterator();
+ Sheet sh = it.next();
+ sh.createRow(0);
+ }
+ wb.close();
+ }
@Test
public void testBug56957CloseWorkbook() throws Exception {
File file = TempFile.createTempFile("TestBug56957_", ".xlsx");
-
+ final String dateExp = "Sun Nov 09 00:00:00 CET 2014";
+
try {
// as the file is written to, we make a copy before actually working on it
FileHelper.copyFile(HSSFTestDataSamples.getSampleFile("56957.xlsx"), file);
-
+
assertTrue(file.exists());
-
+
// read-only mode works!
Workbook workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ));
- System.out.println(workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue().toString());
+ String str = workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue().toString();
+ assertEquals(dateExp, str);
workbook.close();
workbook = null;
-
+
workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ));
- System.out.println(workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue().toString());
+ str = workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue().toString();
+ assertEquals(dateExp, str);
workbook.close();
workbook = null;
-
+
// now check read/write mode
workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ_WRITE));
- System.out.println(workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue().toString());
+ str = workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue().toString();
+ assertEquals(dateExp, str);
workbook.close();
workbook = null;
-
+
workbook = WorkbookFactory.create(OPCPackage.open(file, PackageAccess.READ_WRITE));
- System.out.println(workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue().toString());
+ str = workbook.getSheetAt(0).getRow(0).getCell(0, Row.CREATE_NULL_AS_BLANK).getDateCellValue().toString();
+ assertEquals(dateExp, str);
workbook.close();
workbook = null;
} finally {