diff options
author | Yegor Kozlov <yegor@apache.org> | 2008-10-10 14:54:32 +0000 |
---|---|---|
committer | Yegor Kozlov <yegor@apache.org> | 2008-10-10 14:54:32 +0000 |
commit | b4e74b306c947a57fc97eac555e3a9b3fa85e650 (patch) | |
tree | 933255b10173bc136046bee6e1d0a6981d459762 /src/ooxml/testcases/org | |
parent | 91d6061c0781c1c71b998aa3710b66e09aca3021 (diff) | |
download | poi-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')
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"); |