aboutsummaryrefslogtreecommitdiffstats
path: root/src/ooxml/testcases/org
diff options
context:
space:
mode:
authorYegor Kozlov <yegor@apache.org>2008-10-10 14:54:32 +0000
committerYegor Kozlov <yegor@apache.org>2008-10-10 14:54:32 +0000
commitb4e74b306c947a57fc97eac555e3a9b3fa85e650 (patch)
tree933255b10173bc136046bee6e1d0a6981d459762 /src/ooxml/testcases/org
parent91d6061c0781c1c71b998aa3710b66e09aca3021 (diff)
downloadpoi-b4e74b306c947a57fc97eac555e3a9b3fa85e650.tar.gz
poi-b4e74b306c947a57fc97eac555e3a9b3fa85e650.zip
Initial support for SpreadsheetML drawings,implemented XSSFPicture, added ability to add pictures to workbook, refactored XSSFPictureData to be a subclass of POIXMLDocumentPart. Also refactored misc odds and ends in order to produce xml better compatible with what MS Office produces
git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@703490 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'src/ooxml/testcases/org')
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/io/TestLoadSaveXSSF.java7
-rwxr-xr-xsrc/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFDrawing.java70
-rwxr-xr-xsrc/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPicture.java55
-rwxr-xr-xsrc/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPictureData.java104
-rw-r--r--src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java126
5 files changed, 296 insertions, 66 deletions
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/io/TestLoadSaveXSSF.java b/src/ooxml/testcases/org/apache/poi/xssf/io/TestLoadSaveXSSF.java
index 6b590df934..94e8c09007 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/io/TestLoadSaveXSSF.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/io/TestLoadSaveXSSF.java
@@ -28,6 +28,7 @@ import org.apache.poi.ss.usermodel.PictureData;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
+import org.apache.poi.xssf.usermodel.XSSFPictureData;
public class TestLoadSaveXSSF extends TestCase {
@@ -42,7 +43,7 @@ public class TestLoadSaveXSSF extends TestCase {
filename = "src/ooxml/testcases/org/apache/poi/xssf/data";
}
}
-
+
public void testLoadSample() throws Exception {
XSSFWorkbook workbook = new XSSFWorkbook(new File(filename, "sample.xlsx").getAbsolutePath());
assertEquals(3, workbook.getNumberOfSheets());
@@ -55,7 +56,7 @@ public class TestLoadSaveXSSF extends TestCase {
cell = row.getCell((short) 0);
assertEquals("Lorem", cell.getRichStringCellValue().getString());
}
-
+
// TODO filename string hard coded in XSSFWorkbook constructor in order to make ant test-ooxml target be successfull.
public void testLoadStyles() throws Exception {
XSSFWorkbook workbook = new XSSFWorkbook(new File(filename, "styles.xlsx").getAbsolutePath());
@@ -69,7 +70,7 @@ public class TestLoadSaveXSSF extends TestCase {
// TODO filename string hard coded in XSSFWorkbook constructor in order to make ant test-ooxml target be successfull.
public void testLoadPictures() throws Exception {
XSSFWorkbook workbook = new XSSFWorkbook(new File(filename, "picture.xlsx").getAbsolutePath());
- List<PictureData> pictures = workbook.getAllPictures();
+ List<XSSFPictureData> pictures = workbook.getAllPictures();
assertEquals(1, pictures.size());
}
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFDrawing.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFDrawing.java
new file mode 100755
index 0000000000..c2ff6acad3
--- /dev/null
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFDrawing.java
@@ -0,0 +1,70 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.poi.xssf.usermodel;
+
+import junit.framework.TestCase;
+import org.apache.poi.xssf.XSSFTestDataSamples;
+import org.apache.poi.POIXMLDocumentPart;
+import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTDrawing;
+
+import java.util.List;
+import java.io.IOException;
+
+/**
+ * @author Yegor Kozlov
+ */
+public class TestXSSFDrawing extends TestCase {
+ public void testRead(){
+ XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("WithDrawing.xlsx");
+ XSSFSheet sheet = wb.getSheetAt(0);
+ //the sheet has one relationship and it is XSSFDrawing
+ List<POIXMLDocumentPart> rels = sheet.getRelations();
+ assertEquals(1, rels.size());
+ assertTrue(rels.get(0) instanceof XSSFDrawing);
+
+ XSSFDrawing drawing = (XSSFDrawing)rels.get(0);
+ //sheet.createDrawingPatriarch() should return the same instance of XSSFDrawing
+ assertSame(drawing, sheet.createDrawingPatriarch());
+ String drawingId = drawing.getPackageRelationship().getId();
+
+ //there should be a relation to this drawing in the worksheet
+ assertTrue(sheet.getWorksheet().isSetDrawing());
+ assertEquals(drawingId, sheet.getWorksheet().getDrawing().getId());
+
+ }
+
+ public void testNew(){
+ XSSFWorkbook wb = new XSSFWorkbook();
+ XSSFSheet sheet = wb.createSheet();
+ //multiple calls of createDrawingPatriarch should return the same instance of XSSFDrawing
+ XSSFDrawing dr1 = sheet.createDrawingPatriarch();
+ XSSFDrawing dr2 = sheet.createDrawingPatriarch();
+ assertSame(dr1, dr2);
+
+ List<POIXMLDocumentPart> rels = sheet.getRelations();
+ assertEquals(1, rels.size());
+ assertTrue(rels.get(0) instanceof XSSFDrawing);
+
+ XSSFDrawing drawing = (XSSFDrawing)rels.get(0);
+ String drawingId = drawing.getPackageRelationship().getId();
+
+ //there should be a relation to this drawing in the worksheet
+ assertTrue(sheet.getWorksheet().isSetDrawing());
+ assertEquals(drawingId, sheet.getWorksheet().getDrawing().getId());
+
+ }
+}
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPicture.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPicture.java
new file mode 100755
index 0000000000..eb405f1e12
--- /dev/null
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPicture.java
@@ -0,0 +1,55 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.poi.xssf.usermodel;
+
+import junit.framework.TestCase;
+import org.apache.poi.xssf.XSSFTestDataSamples;
+import org.apache.poi.POIXMLDocumentPart;
+import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTDrawing;
+
+import java.util.List;
+import java.util.Arrays;
+import java.io.IOException;
+
+/**
+ * @author Yegor Kozlov
+ */
+public class TestXSSFPicture extends TestCase {
+
+ public void testCreate(){
+ XSSFWorkbook wb = new XSSFWorkbook();
+ XSSFSheet sheet = wb.createSheet();
+ XSSFDrawing drawing = sheet.createDrawingPatriarch();
+
+ byte[] jpegData = "test jpeg data".getBytes();
+
+ List<XSSFPictureData> pictures = wb.getAllPictures();
+ assertEquals(0, pictures.size());
+
+ int jpegIdx = wb.addPicture(jpegData, XSSFWorkbook.PICTURE_TYPE_JPEG);
+ assertEquals(1, pictures.size());
+ assertEquals("jpeg", pictures.get(jpegIdx).suggestFileExtension());
+ assertTrue(Arrays.equals(jpegData, pictures.get(jpegIdx).getData()));
+
+ XSSFClientAnchor anchor = new XSSFClientAnchor(0, 0, 0, 0, 1, 1, 10, 30);
+ XSSFPicture shape = drawing.createPicture(anchor, jpegIdx);
+ assertTrue(anchor.equals(shape.getAnchor()));
+ assertNotNull(shape.getPictureData());
+ assertTrue(Arrays.equals(jpegData, shape.getPictureData().getData()));
+
+ }
+}
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPictureData.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPictureData.java
new file mode 100755
index 0000000000..50b90e746e
--- /dev/null
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFPictureData.java
@@ -0,0 +1,104 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.poi.xssf.usermodel;
+
+import junit.framework.TestCase;
+import org.apache.poi.xssf.XSSFTestDataSamples;
+import org.apache.poi.POIXMLDocumentPart;
+import org.openxmlformats.schemas.drawingml.x2006.spreadsheetDrawing.CTDrawing;
+
+import java.util.List;
+import java.util.Arrays;
+import java.io.IOException;
+
+/**
+ * @author Yegor Kozlov
+ */
+public class TestXSSFPictureData extends TestCase {
+ public void testRead(){
+ XSSFWorkbook wb = XSSFTestDataSamples.openSampleWorkbook("WithDrawing.xlsx");
+ List<XSSFPictureData> pictures = wb.getAllPictures();
+ //wb.getAllPictures() should return the same instance across multiple calls
+ assertSame(pictures, wb.getAllPictures());
+
+ assertEquals(5, pictures.size());
+ String[] ext = {"jpeg", "emf", "png", "emf", "wmf"};
+ for (int i = 0; i < pictures.size(); i++) {
+ assertEquals(ext[i], pictures.get(i).suggestFileExtension());
+ }
+
+ int num = pictures.size();
+
+ byte[] pictureData = {0xA, 0xB, 0XC, 0xD, 0xE, 0xF};
+
+ int idx = wb.addPicture(pictureData, XSSFWorkbook.PICTURE_TYPE_JPEG);
+ assertEquals(num + 1, pictures.size());
+ //idx is 0-based index in the #pictures array
+ assertEquals(pictures.size() - 1, idx);
+ XSSFPictureData pict = pictures.get(idx);
+ assertEquals("jpeg", pict.suggestFileExtension());
+ assertTrue(Arrays.equals(pictureData, pict.getData()));
+ }
+
+ public void testNew(){
+ XSSFWorkbook wb = new XSSFWorkbook();
+ XSSFSheet sheet = wb.createSheet();
+ XSSFDrawing drawing = sheet.createDrawingPatriarch();
+
+ byte[] jpegData = "test jpeg data".getBytes();
+ byte[] wmfData = "test wmf data".getBytes();
+ byte[] pngData = "test png data".getBytes();
+
+ List<XSSFPictureData> pictures = wb.getAllPictures();
+ assertEquals(0, pictures.size());
+
+ int jpegIdx = wb.addPicture(jpegData, XSSFWorkbook.PICTURE_TYPE_JPEG);
+ assertEquals(1, pictures.size());
+ assertEquals("jpeg", pictures.get(jpegIdx).suggestFileExtension());
+ assertTrue(Arrays.equals(jpegData, pictures.get(jpegIdx).getData()));
+
+ int wmfIdx = wb.addPicture(wmfData, XSSFWorkbook.PICTURE_TYPE_WMF);
+ assertEquals(2, pictures.size());
+ assertEquals("wmf", pictures.get(wmfIdx).suggestFileExtension());
+ assertTrue(Arrays.equals(wmfData, pictures.get(wmfIdx).getData()));
+
+ int pngIdx = wb.addPicture(pngData, XSSFWorkbook.PICTURE_TYPE_PNG);
+ assertEquals(3, pictures.size());
+ assertEquals("png", pictures.get(pngIdx).suggestFileExtension());
+ assertTrue(Arrays.equals(pngData, pictures.get(pngIdx).getData()));
+
+ //TODO finish usermodel API for XSSFPicture
+ XSSFPicture p1 = drawing.createPicture(new XSSFClientAnchor(), jpegIdx);
+ XSSFPicture p2 = drawing.createPicture(new XSSFClientAnchor(), wmfIdx);
+ XSSFPicture p3 = drawing.createPicture(new XSSFClientAnchor(), pngIdx);
+
+ //check that the added pictures are accessible after write
+ wb = XSSFTestDataSamples.writeOutAndReadBack(wb);
+ List<XSSFPictureData> pictures2 = wb.getAllPictures();
+ assertEquals(3, pictures2.size());
+
+ assertEquals("jpeg", pictures2.get(jpegIdx).suggestFileExtension());
+ assertTrue(Arrays.equals(jpegData, pictures2.get(jpegIdx).getData()));
+
+ assertEquals("wmf", pictures2.get(wmfIdx).suggestFileExtension());
+ assertTrue(Arrays.equals(wmfData, pictures2.get(wmfIdx).getData()));
+
+ assertEquals("png", pictures2.get(pngIdx).suggestFileExtension());
+ assertTrue(Arrays.equals(pngData, pictures2.get(pngIdx).getData()));
+
+ }
+}
diff --git a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
index 402725aca5..0400c5b4d7 100644
--- a/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
+++ b/src/ooxml/testcases/org/apache/poi/xssf/usermodel/TestXSSFSheet.java
@@ -41,7 +41,7 @@ import org.openxmlformats.schemas.spreadsheetml.x2006.main.STPane;
public class TestXSSFSheet extends TestCase {
-
+
public void testRowIterator() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -55,7 +55,7 @@ public class TestXSSFSheet extends TestCase {
assertEquals(row2, it.next());
assertFalse(it.hasNext());
}
-
+
public void testGetRow() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -63,17 +63,17 @@ public class TestXSSFSheet extends TestCase {
Cell cell = row1.createCell((short) 0);
cell.setCellType(Cell.CELL_TYPE_NUMERIC);
cell.setCellValue((double) 1000);
-
+
// Test getting a row and check its cell's value
Row row_got = sheet.getRow(0);
Cell cell_got = row_got.getCell((short) 0);
assertEquals((double) 1000, cell_got.getNumericCellValue());
}
-
+
public void testCreateRow() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
-
+
// Test row creation with consecutive indexes
Row row1 = sheet.createRow(0);
Row row2 = sheet.createRow(1);
@@ -84,11 +84,11 @@ public class TestXSSFSheet extends TestCase {
assertEquals(row1, it.next());
assertTrue(it.hasNext());
assertEquals(row2, it.next());
-
+
// Test row creation with non consecutive index
Row row101 = sheet.createRow(100);
assertNotNull(row101);
-
+
// Test overwriting an existing row
Row row2_ovrewritten = sheet.createRow(1);
Cell cell = row2_ovrewritten.createCell((short) 0);
@@ -102,7 +102,7 @@ public class TestXSSFSheet extends TestCase {
assertEquals(row2_ovrewritten, row2_overwritten_copy);
assertEquals(row2_overwritten_copy.getCell((short) 0).getNumericCellValue(), (double) 100);
}
-
+
public void testRemoveRow() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -114,7 +114,7 @@ public class TestXSSFSheet extends TestCase {
assertNull(sheet.getRow(2));
assertNotNull(sheet.getRow(1));
}
-
+
public void testGetSetDefaultRowHeight() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -131,17 +131,17 @@ public class TestXSSFSheet extends TestCase {
sheet.setDefaultRowHeightInPoints((short) 17);
assertEquals((short) 340, sheet.getDefaultRowHeight());
}
-
+
public void testGetSetDefaultColumnWidth() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
// Test that default column width set by the constructor
- assertEquals((short) 0, sheet.getDefaultColumnWidth());
+ assertEquals((short) 8, sheet.getDefaultColumnWidth());
// Set a new default column width and get its value
sheet.setDefaultColumnWidth((short) 14);
assertEquals((short) 14, sheet.getDefaultColumnWidth());
}
-
+
public void testGetFirstLastRowNum() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -149,9 +149,9 @@ public class TestXSSFSheet extends TestCase {
Row row1 = sheet.createRow(0);
Row row2 = sheet.createRow(1);
assertEquals(0, sheet.getFirstRowNum());
- assertEquals(9, sheet.getLastRowNum());
+ assertEquals(9, sheet.getLastRowNum());
}
-
+
public void testGetPhysicalNumberOfRows() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -160,7 +160,7 @@ public class TestXSSFSheet extends TestCase {
Row row2 = sheet.createRow(1);
assertEquals(3, sheet.getPhysicalNumberOfRows());
}
-
+
public void testGetSetRowBreaks() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -173,7 +173,7 @@ public class TestXSSFSheet extends TestCase {
sheet.setRowBreak(1);
assertEquals(2, sheet.getRowBreaks().length);
}
-
+
public void testRemoveRowBreak() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -184,7 +184,7 @@ public class TestXSSFSheet extends TestCase {
sheet.removeRowBreak(1);
assertEquals(1, sheet.getRowBreaks().length);
}
-
+
public void testGetSetColumnBreaks() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -195,7 +195,7 @@ public class TestXSSFSheet extends TestCase {
sheet.setColumnBreak((short) 11223);
assertEquals(2, sheet.getColumnBreaks().length);
}
-
+
public void testRemoveColumnBreak() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -209,7 +209,7 @@ public class TestXSSFSheet extends TestCase {
sheet.removeColumnBreak((short) 15);
assertEquals(1, sheet.getColumnBreaks().length);
}
-
+
public void testIsRowColumnBroken() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -220,7 +220,7 @@ public class TestXSSFSheet extends TestCase {
sheet.setColumnBreak((short) 3);
assertTrue(sheet.isColumnBroken((short) 3));
}
-
+
public void testGetSetAutoBreaks() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -228,7 +228,7 @@ public class TestXSSFSheet extends TestCase {
sheet.setAutobreaks(false);
assertFalse(sheet.getAutobreaks());
}
-
+
public void testIsSetFitToPage() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -238,7 +238,7 @@ public class TestXSSFSheet extends TestCase {
sheet.setFitToPage(false);
assertFalse(sheet.getFitToPage());
}
-
+
public void testGetSetMargin() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
@@ -270,7 +270,7 @@ public class TestXSSFSheet extends TestCase {
assertEquals((double) 14, sheet.getMargin((short) 5));
sheet.setMargin((short) 5, 15);
assertEquals((double) 15, sheet.getMargin((short) 5));
-
+
// Test that nothing happens if another margin constant is given (E.G. 65)
sheet.setMargin((short) 65, 15);
assertEquals((double) 10, sheet.getMargin((short) 0));
@@ -280,83 +280,83 @@ public class TestXSSFSheet extends TestCase {
assertEquals((double) 14, sheet.getMargin((short) 4));
assertEquals((double) 15, sheet.getMargin((short) 5));
}
-
+
public void testGetFooter() {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = (XSSFSheet)workbook.createSheet("Sheet 1");
assertNotNull(sheet.getFooter());
sheet.getFooter().setCenter("test center footer");
assertEquals("test center footer", sheet.getFooter().getCenter());
-
+
// Default is odd footer
assertNotNull(sheet.getOddFooter());
assertEquals("test center footer", sheet.getOddFooter().getCenter());
}
-
+
public void testExistingHeaderFooter() throws Exception {
File xml = new File(
System.getProperty("HSSF.testdata.path") +
File.separator + "45540_classic_Header.xlsx"
);
assertTrue(xml.exists());
-
+
XSSFWorkbook workbook = new XSSFWorkbook(xml.toString());
XSSFOddHeader hdr;
XSSFOddFooter ftr;
-
+
// Sheet 1 has a header with center and right text
XSSFSheet s1 = (XSSFSheet)workbook.getSheetAt(0);
assertNotNull(s1.getHeader());
assertNotNull(s1.getFooter());
- hdr = (XSSFOddHeader)s1.getHeader();
- ftr = (XSSFOddFooter)s1.getFooter();
-
+ hdr = (XSSFOddHeader)s1.getHeader();
+ ftr = (XSSFOddFooter)s1.getFooter();
+
assertEquals("&Ctestdoc&Rtest phrase", hdr.getText());
assertEquals(null, ftr.getText());
-
+
assertEquals("", hdr.getLeft());
assertEquals("testdoc", hdr.getCenter());
assertEquals("test phrase", hdr.getRight());
-
+
assertEquals("", ftr.getLeft());
assertEquals("", ftr.getCenter());
assertEquals("", ftr.getRight());
-
-
+
+
// Sheet 2 has a footer, but it's empty
XSSFSheet s2 = (XSSFSheet)workbook.getSheetAt(1);
assertNotNull(s2.getHeader());
assertNotNull(s2.getFooter());
- hdr = (XSSFOddHeader)s2.getHeader();
- ftr = (XSSFOddFooter)s2.getFooter();
-
+ hdr = (XSSFOddHeader)s2.getHeader();
+ ftr = (XSSFOddFooter)s2.getFooter();
+
assertEquals(null, hdr.getText());
assertEquals("&L&F", ftr.getText());
-
+
assertEquals("", hdr.getLeft());
assertEquals("", hdr.getCenter());
assertEquals("", hdr.getRight());
-
+
assertEquals("&F", ftr.getLeft());
assertEquals("", ftr.getCenter());
assertEquals("", ftr.getRight());
-
-
+
+
// Save and reload
XSSFWorkbook wb = XSSFTestDataSamples.writeOutAndReadBack(workbook);
-
+
hdr = (XSSFOddHeader)wb.getSheetAt(0).getHeader();
- ftr = (XSSFOddFooter)wb.getSheetAt(0).getFooter();
-
+ ftr = (XSSFOddFooter)wb.getSheetAt(0).getFooter();
+
assertEquals("", hdr.getLeft());
assertEquals("testdoc", hdr.getCenter());
assertEquals("test phrase", hdr.getRight());
-
+
assertEquals("", ftr.getLeft());
assertEquals("", ftr.getCenter());
assertEquals("", ftr.getRight());
}
-
+
public void testGetAllHeadersFooters() {
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = (XSSFSheet) workbook.createSheet("Sheet 1");
@@ -366,27 +366,27 @@ public class TestXSSFSheet extends TestCase {
assertNotNull(sheet.getOddHeader());
assertNotNull(sheet.getEvenHeader());
assertNotNull(sheet.getFirstHeader());
-
+
assertEquals("", sheet.getOddFooter().getLeft());
sheet.getOddFooter().setLeft("odd footer left");
assertEquals("odd footer left", sheet.getOddFooter().getLeft());
-
+
assertEquals("", sheet.getEvenFooter().getLeft());
sheet.getEvenFooter().setLeft("even footer left");
assertEquals("even footer left", sheet.getEvenFooter().getLeft());
-
+
assertEquals("", sheet.getFirstFooter().getLeft());
sheet.getFirstFooter().setLeft("first footer left");
assertEquals("first footer left", sheet.getFirstFooter().getLeft());
-
+
assertEquals("", sheet.getOddHeader().getLeft());
sheet.getOddHeader().setLeft("odd header left");
assertEquals("odd header left", sheet.getOddHeader().getLeft());
-
+
assertEquals("", sheet.getOddHeader().getRight());
sheet.getOddHeader().setRight("odd header right");
assertEquals("odd header right", sheet.getOddHeader().getRight());
-
+
assertEquals("", sheet.getOddHeader().getCenter());
sheet.getOddHeader().setCenter("odd header center");
assertEquals("odd header center", sheet.getOddHeader().getCenter());
@@ -395,49 +395,49 @@ public class TestXSSFSheet extends TestCase {
assertEquals("odd footer left", sheet.getFooter().getLeft());
assertEquals("odd header center", sheet.getHeader().getCenter());
}
-
+
public void testGetSetColumnWidth() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
sheet.setColumnWidth((short) 1,(short) 22);
assertEquals(22, sheet.getColumnWidth((short) 1));
-
+
// Now check the low level stuff, and check that's all
// been set correctly
XSSFSheet xs = (XSSFSheet)sheet;
CTWorksheet cts = xs.getWorksheet();
-
+
CTCols[] cols_s = cts.getColsArray();
assertEquals(1, cols_s.length);
CTCols cols = cols_s[0];
assertEquals(1, cols.sizeOfColArray());
CTCol col = cols.getColArray(0);
-
+
// XML is 1 based, POI is 0 based
assertEquals(2, col.getMin());
assertEquals(2, col.getMax());
assertEquals(22.0, col.getWidth());
-
-
+
+
// Now set another
sheet.setColumnWidth((short) 3,(short) 33);
-
+
cols_s = cts.getColsArray();
assertEquals(1, cols_s.length);
cols = cols_s[0];
assertEquals(2, cols.sizeOfColArray());
-
+
col = cols.getColArray(0);
assertEquals(2, col.getMin()); // POI 1
assertEquals(2, col.getMax());
assertEquals(22.0, col.getWidth());
-
+
col = cols.getColArray(1);
assertEquals(4, col.getMin()); // POI 3
assertEquals(4, col.getMax());
assertEquals(33.0, col.getWidth());
}
-
+
public void testGetSetColumnHidden() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");