Commit patch from Paolo <p.mottadelli@sourcesense.com> attached to bug #44319.

git-svn-id: https://svn.apache.org/repos/asf/poi/branches/ooxml@616303 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Ugo Cei 2008-01-29 13:32:48 +00:00
parent 2d33f4190a
commit 9ce000ac3a
2 changed files with 401 additions and 142 deletions

View File

@ -32,13 +32,18 @@ import org.apache.poi.ss.usermodel.PrintSetup;
import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.helpers.ColumnHelper; import org.apache.poi.xssf.usermodel.helpers.ColumnHelper;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTBreak;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCol;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCols; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTCols;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTHeaderFooter; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTHeaderFooter;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageBreak;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageMargins;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTPageSetUpPr;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTRow;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSelection; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSelection;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheet;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetFormatPr; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetFormatPr;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetPr;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetView; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetView;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetViews; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTSheetViews;
import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorksheet;
@ -50,6 +55,13 @@ public class XSSFSheet implements Sheet {
private CTWorksheet worksheet; private CTWorksheet worksheet;
private List<Row> rows; private List<Row> rows;
private ColumnHelper columnHelper; private ColumnHelper columnHelper;
public static final short LeftMargin = 0;
public static final short RightMargin = 1;
public static final short TopMargin = 2;
public static final short BottomMargin = 3;
public static final short HeaderMargin = 4;
public static final short FooterMargin = 5;
public XSSFSheet(CTSheet sheet) { public XSSFSheet(CTSheet sheet) {
this.sheet = sheet; this.sheet = sheet;
@ -86,6 +98,11 @@ public class XSSFSheet implements Sheet {
CTHeaderFooter hf = this.worksheet.addNewHeaderFooter(); CTHeaderFooter hf = this.worksheet.addNewHeaderFooter();
hf.setOddHeader("&amp;C&amp;A"); hf.setOddHeader("&amp;C&amp;A");
hf.setOddFooter("&amp;C&amp;\"Arial\"&amp;10Page &amp;P"); hf.setOddFooter("&amp;C&amp;\"Arial\"&amp;10Page &amp;P");
CTPageBreak rowBreaks = worksheet.addNewRowBreaks();
CTPageBreak columnBreak = worksheet.addNewColBreaks();
CTSheetPr sheetPr = worksheet.addNewSheetPr();
CTPageSetUpPr sheetPageSetUpPr = sheetPr.addNewPageSetUpPr();
CTPageMargins pageMargins = worksheet.addNewPageMargins();
columnHelper = new ColumnHelper(worksheet); columnHelper = new ColumnHelper(worksheet);
} }
@ -172,8 +189,7 @@ public class XSSFSheet implements Sheet {
} }
public boolean getAutobreaks() { public boolean getAutobreaks() {
// TODO Auto-generated method stub return worksheet.getSheetPr().getPageSetUpPr().getAutoPageBreaks();
return false;
} }
public Comment getCellComment(int row, int column) { public Comment getCellComment(int row, int column) {
@ -182,24 +198,32 @@ public class XSSFSheet implements Sheet {
} }
public short[] getColumnBreaks() { public short[] getColumnBreaks() {
// TODO Auto-generated method stub CTBreak[] brkArray = worksheet.getColBreaks().getBrkArray();
return null; if (brkArray.length == 0) {
return null;
}
short[] breaks = new short[brkArray.length];
for (int i = 0 ; i < brkArray.length ; i++) {
CTBreak brk = brkArray[i];
breaks[i] = (short) brk.getId();
}
return breaks;
} }
public short getColumnWidth(short column) { public short getColumnWidth(short column) {
return (short) columnHelper.getColumn(column).getWidth(); return (short) columnHelper.getColumn(column).getWidth();
} }
public short getDefaultColumnWidth() { public short getDefaultColumnWidth() {
return (short) this.worksheet.getSheetFormatPr().getDefaultColWidth(); return (short) this.worksheet.getSheetFormatPr().getDefaultColWidth();
} }
public short getDefaultRowHeight() { public short getDefaultRowHeight() {
return (short) (this.worksheet.getSheetFormatPr().getDefaultRowHeight() * 20); return (short) (this.worksheet.getSheetFormatPr().getDefaultRowHeight() * 20);
} }
public float getDefaultRowHeightInPoints() { public float getDefaultRowHeightInPoints() {
return (short) this.worksheet.getSheetFormatPr().getDefaultRowHeight(); return (short) this.worksheet.getSheetFormatPr().getDefaultRowHeight();
} }
public boolean getDialog() { public boolean getDialog() {
@ -213,13 +237,17 @@ public class XSSFSheet implements Sheet {
} }
public int getFirstRowNum() { public int getFirstRowNum() {
// TODO Auto-generated method stub for (Iterator<Row> it = rowIterator() ; it.hasNext() ; ) {
return 0; Row row = it.next();
if (row != null) {
return row.getRowNum();
}
}
return -1;
} }
public boolean getFitToPage() { public boolean getFitToPage() {
// TODO Auto-generated method stub return worksheet.getSheetPr().getPageSetUpPr().getFitToPage();
return false;
} }
public Footer getFooter() { public Footer getFooter() {
@ -238,8 +266,14 @@ public class XSSFSheet implements Sheet {
} }
public int getLastRowNum() { public int getLastRowNum() {
// TODO Auto-generated method stub int lastRowNum = -1;
return 0; for (Iterator<Row> it = rowIterator() ; it.hasNext() ; ) {
Row row = it.next();
if (row != null) {
lastRowNum = row.getRowNum();
}
}
return lastRowNum;
} }
public short getLeftCol() { public short getLeftCol() {
@ -248,8 +282,23 @@ public class XSSFSheet implements Sheet {
} }
public double getMargin(short margin) { public double getMargin(short margin) {
// TODO Auto-generated method stub CTPageMargins pageMargins = worksheet.getPageMargins();
return 0; switch (margin) {
case LeftMargin:
return pageMargins.getLeft();
case RightMargin:
return pageMargins.getRight();
case TopMargin:
return pageMargins.getTop();
case BottomMargin:
return pageMargins.getBottom();
case HeaderMargin:
return pageMargins.getHeader();
case FooterMargin:
return pageMargins.getFooter();
default :
throw new RuntimeException( "Unknown margin constant: " + margin );
}
} }
public Region getMergedRegionAt(int index) { public Region getMergedRegionAt(int index) {
@ -278,8 +327,13 @@ public class XSSFSheet implements Sheet {
} }
public int getPhysicalNumberOfRows() { public int getPhysicalNumberOfRows() {
// TODO Auto-generated method stub int counter = 0;
return 0; for (Iterator<Row> it = rowIterator() ; it.hasNext() ; ) {
if (it.next() != null) {
counter++;
}
}
return counter;
} }
public PrintSetup getPrintSetup() { public PrintSetup getPrintSetup() {
@ -303,8 +357,17 @@ public class XSSFSheet implements Sheet {
} }
public int[] getRowBreaks() { public int[] getRowBreaks() {
// TODO Auto-generated method stub CTPageBreak rowBreaks = worksheet.getRowBreaks();
return null; int breaksCount = rowBreaks.getBrkArray().length;
if (breaksCount == 0) {
return null;
}
int[] breaks = new int[breaksCount];
for (int i = 0 ; i < breaksCount ; i++) {
CTBreak brk = rowBreaks.getBrkArray(i);
breaks[i] = (int) brk.getId();
}
return breaks;
} }
public boolean getRowSumsBelow() { public boolean getRowSumsBelow() {
@ -343,13 +406,17 @@ public class XSSFSheet implements Sheet {
} }
public boolean isColumnBroken(short column) { public boolean isColumnBroken(short column) {
// TODO Auto-generated method stub CTBreak[] brkArray = worksheet.getColBreaks().getBrkArray();
for (int i = 0 ; i < brkArray.length ; i++) {
if (brkArray[i].getId() == column) {
return true;
}
}
return false; return false;
} }
public boolean isColumnHidden(short column) { public boolean isColumnHidden(short column) {
// TODO Auto-generated method stub return columnHelper.getColumn(column).getHidden();
return false;
} }
public boolean isDisplayFormulas() { public boolean isDisplayFormulas() {
@ -378,7 +445,15 @@ public class XSSFSheet implements Sheet {
} }
public boolean isRowBroken(int row) { public boolean isRowBroken(int row) {
// TODO Auto-generated method stub int[] rowBreaks = getRowBreaks();
if (rowBreaks == null) {
return false;
}
for (int i = 0 ; i < rowBreaks.length ; i++) {
if (rowBreaks[i] == row) {
return true;
}
}
return false; return false;
} }
@ -388,8 +463,13 @@ public class XSSFSheet implements Sheet {
} }
public void removeColumnBreak(short column) { public void removeColumnBreak(short column) {
// TODO Auto-generated method stub CTBreak[] brkArray = worksheet.getColBreaks().getBrkArray();
for (int i = 0 ; i < brkArray.length ; i++) {
if (brkArray[i].getId() == column) {
worksheet.getColBreaks().removeBrk(i);
continue;
}
}
} }
public void removeMergedRegion(int index) { public void removeMergedRegion(int index) {
@ -398,13 +478,25 @@ public class XSSFSheet implements Sheet {
} }
public void removeRow(Row row) { public void removeRow(Row row) {
// TODO Auto-generated method stub int counter = 0;
for (Iterator<Row> it = rowIterator() ; it.hasNext() ; ) {
Row r = it.next();
if (r.getRowNum() == row.getRowNum()) {
it.remove();
worksheet.getSheetData().removeRow(counter);
}
counter++;
}
} }
public void removeRowBreak(int row) { public void removeRowBreak(int row) {
// TODO Auto-generated method stub CTBreak[] brkArray = worksheet.getRowBreaks().getBrkArray();
for (int i = 0 ; i < brkArray.length ; i++) {
if (brkArray[i].getId() == row) {
worksheet.getRowBreaks().removeBrk(i);
continue;
}
}
} }
public Iterator<Row> rowIterator() { public Iterator<Row> rowIterator() {
@ -422,13 +514,14 @@ public class XSSFSheet implements Sheet {
} }
public void setAutobreaks(boolean b) { public void setAutobreaks(boolean b) {
// TODO Auto-generated method stub worksheet.getSheetPr().getPageSetUpPr().setAutoPageBreaks(b);
} }
public void setColumnBreak(short column) { public void setColumnBreak(short column) {
// TODO Auto-generated method stub if (! isColumnBroken(column)) {
CTBreak brk = worksheet.getColBreaks().addNewBrk();
brk.setId(column);
}
} }
public void setColumnGroupCollapsed(short columnNumber, boolean collapsed) { public void setColumnGroupCollapsed(short columnNumber, boolean collapsed) {
@ -437,16 +530,19 @@ public class XSSFSheet implements Sheet {
} }
public void setColumnHidden(short column, boolean hidden) { public void setColumnHidden(short column, boolean hidden) {
// TODO Auto-generated method stub CTCol col = columnHelper.getColumn(column);
if (col == null) {
col = columnHelper.createColumn(column);
}
col.setHidden(hidden);
} }
public void setColumnWidth(short column, short width) { public void setColumnWidth(short column, short width) {
CTCol col = columnHelper.getColumn(column); CTCol col = columnHelper.getColumn(column);
if (col == null) { if (col == null) {
col = columnHelper.createColumn(column); col = columnHelper.createColumn(column);
} }
col.setWidth(width); col.setWidth(width);
} }
public void setDefaultColumnStyle(short column, CellStyle style) { public void setDefaultColumnStyle(short column, CellStyle style) {
@ -455,16 +551,16 @@ public class XSSFSheet implements Sheet {
} }
public void setDefaultColumnWidth(short width) { public void setDefaultColumnWidth(short width) {
this.worksheet.getSheetFormatPr().setDefaultColWidth((double) width); this.worksheet.getSheetFormatPr().setDefaultColWidth((double) width);
} }
public void setDefaultRowHeight(short height) { public void setDefaultRowHeight(short height) {
this.worksheet.getSheetFormatPr().setDefaultRowHeight(height / 20); this.worksheet.getSheetFormatPr().setDefaultRowHeight(height / 20);
} }
public void setDefaultRowHeightInPoints(float height) { public void setDefaultRowHeightInPoints(float height) {
this.worksheet.getSheetFormatPr().setDefaultRowHeight(height); this.worksheet.getSheetFormatPr().setDefaultRowHeight(height);
} }
@ -494,8 +590,7 @@ public class XSSFSheet implements Sheet {
} }
public void setFitToPage(boolean b) { public void setFitToPage(boolean b) {
// TODO Auto-generated method stub worksheet.getSheetPr().getPageSetUpPr().setFitToPage(b);
} }
public void setGridsPrinted(boolean value) { public void setGridsPrinted(boolean value) {
@ -509,8 +604,21 @@ public class XSSFSheet implements Sheet {
} }
public void setMargin(short margin, double size) { public void setMargin(short margin, double size) {
// TODO Auto-generated method stub CTPageMargins pageMargins = worksheet.getPageMargins();
switch (margin) {
case LeftMargin:
pageMargins.setLeft(size);
case RightMargin:
pageMargins.setRight(size);
case TopMargin:
pageMargins.setTop(size);
case BottomMargin:
pageMargins.setBottom(size);
case HeaderMargin:
pageMargins.setHeader(size);
case FooterMargin:
pageMargins.setFooter(size);
}
} }
public void setPrintGridlines(boolean newPrintGridlines) { public void setPrintGridlines(boolean newPrintGridlines) {
@ -524,8 +632,11 @@ public class XSSFSheet implements Sheet {
} }
public void setRowBreak(int row) { public void setRowBreak(int row) {
// TODO Auto-generated method stub CTPageBreak pageBreak = worksheet.getRowBreaks();
if (! isRowBroken(row)) {
CTBreak brk = pageBreak.addNewBrk();
brk.setId(row);
}
} }
public void setRowGroupCollapsed(int row, boolean collapse) { public void setRowGroupCollapsed(int row, boolean collapse) {

View File

@ -27,96 +27,244 @@ import junit.framework.TestCase;
public class TestXSSFSheet extends TestCase { public class TestXSSFSheet extends TestCase {
public void testRowIterator() throws Exception { public void testRowIterator() {
XSSFWorkbook workbook = new XSSFWorkbook(); XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1"); Sheet sheet = workbook.createSheet("Sheet 1");
Row row1 = sheet.createRow(0); Row row1 = sheet.createRow(0);
Row row2 = sheet.createRow(1); Row row2 = sheet.createRow(1);
Iterator<Row> it = sheet.rowIterator(); Iterator<Row> it = sheet.rowIterator();
assertNotNull(it); assertNotNull(it);
assertTrue(it.hasNext()); assertTrue(it.hasNext());
assertEquals(row1, it.next()); assertEquals(row1, it.next());
assertTrue(it.hasNext()); assertTrue(it.hasNext());
assertEquals(row2, it.next()); assertEquals(row2, it.next());
assertFalse(it.hasNext()); assertFalse(it.hasNext());
} }
public void testGetRow() throws Exception { public void testGetRow() {
XSSFWorkbook workbook = new XSSFWorkbook(); XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1"); Sheet sheet = workbook.createSheet("Sheet 1");
Row row1 = sheet.createRow(0); Row row1 = sheet.createRow(0);
Cell cell = row1.createCell((short) 0); Cell cell = row1.createCell((short) 0);
cell.setCellType(Cell.CELL_TYPE_NUMERIC); cell.setCellType(Cell.CELL_TYPE_NUMERIC);
cell.setCellValue((double) 1000); cell.setCellValue((double) 1000);
// Test getting a row and check its cell's value // Test getting a row and check its cell's value
Row row_got = sheet.getRow(0); Row row_got = sheet.getRow(0);
Cell cell_got = row_got.getCell((short) 0); Cell cell_got = row_got.getCell((short) 0);
assertEquals((double) 1000, cell_got.getNumericCellValue()); assertEquals((double) 1000, cell_got.getNumericCellValue());
} }
public void testCreateRow() throws Exception { public void testCreateRow() {
XSSFWorkbook workbook = new XSSFWorkbook(); XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1"); Sheet sheet = workbook.createSheet("Sheet 1");
// Test row creation with consecutive indexes // Test row creation with consecutive indexes
Row row1 = sheet.createRow(0); Row row1 = sheet.createRow(0);
Row row2 = sheet.createRow(1); Row row2 = sheet.createRow(1);
assertEquals(0, row1.getRowNum()); assertEquals(0, row1.getRowNum());
Iterator<Row> it = sheet.rowIterator(); assertEquals(1, row2.getRowNum());
assertTrue(it.hasNext()); Iterator<Row> it = sheet.rowIterator();
assertEquals(row1, it.next()); assertTrue(it.hasNext());
assertTrue(it.hasNext()); assertEquals(row1, it.next());
assertEquals(row2, it.next()); assertTrue(it.hasNext());
assertEquals(row2, it.next());
// Test row creation with non consecutive index
Row row101 = sheet.createRow(100); // Test row creation with non consecutive index
assertNotNull(row101); Row row101 = sheet.createRow(100);
assertNotNull(row101);
// Test overwriting an existing row
Row row2_ovrewritten = sheet.createRow(1); // Test overwriting an existing row
Cell cell = row2_ovrewritten.createCell((short) 0); Row row2_ovrewritten = sheet.createRow(1);
cell.setCellType(Cell.CELL_TYPE_NUMERIC); Cell cell = row2_ovrewritten.createCell((short) 0);
cell.setCellValue((double) 100); cell.setCellType(Cell.CELL_TYPE_NUMERIC);
Iterator<Row> it2 = sheet.rowIterator(); cell.setCellValue((double) 100);
assertTrue(it2.hasNext()); Iterator<Row> it2 = sheet.rowIterator();
assertEquals(row1, it2.next()); assertTrue(it2.hasNext());
assertTrue(it2.hasNext()); assertEquals(row1, it2.next());
Row row2_overwritten_copy = it2.next(); assertTrue(it2.hasNext());
assertEquals(row2_ovrewritten, row2_overwritten_copy); Row row2_overwritten_copy = it2.next();
assertEquals(row2_overwritten_copy.getCell((short) 0).getNumericCellValue(), (double) 100); assertEquals(row2_ovrewritten, row2_overwritten_copy);
} assertEquals(row2_overwritten_copy.getCell((short) 0).getNumericCellValue(), (double) 100);
}
public void testGetSetDefaultRowHeight() throws Exception {
XSSFWorkbook workbook = new XSSFWorkbook(); public void testRemoveRow() {
Sheet sheet = workbook.createSheet("Sheet 1"); XSSFWorkbook workbook = new XSSFWorkbook();
// Test that default height set by the constructor Sheet sheet = workbook.createSheet("Sheet 1");
assertEquals((short) 300, sheet.getDefaultRowHeight()); Row row1 = sheet.createRow(1);
assertEquals((float) 15, sheet.getDefaultRowHeightInPoints()); Row row2 = sheet.createRow(2);
// Set a new default row height in twips and test getting the value in points assertNotNull(sheet.getRow(1));
sheet.setDefaultRowHeight((short) 360); sheet.removeRow(row2);
assertEquals((float) 18, sheet.getDefaultRowHeightInPoints()); assertNull(sheet.getRow(0));
// Set a new default row height in points and test getting the value in twips assertNull(sheet.getRow(2));
sheet.setDefaultRowHeightInPoints((short) 17); assertNotNull(sheet.getRow(1));
assertEquals((short) 340, sheet.getDefaultRowHeight()); }
}
public void testGetSetDefaultRowHeight() {
public void testGetSetDefaultColumnWidth() throws Exception { XSSFWorkbook workbook = new XSSFWorkbook();
XSSFWorkbook workbook = new XSSFWorkbook(); Sheet sheet = workbook.createSheet("Sheet 1");
Sheet sheet = workbook.createSheet("Sheet 1"); // Test that default height set by the constructor
// Test that default column width set by the constructor assertEquals((short) 300, sheet.getDefaultRowHeight());
assertEquals((short) 13, sheet.getDefaultColumnWidth()); assertEquals((float) 15, sheet.getDefaultRowHeightInPoints());
// Set a new default column width and get its value // Set a new default row height in twips and test getting the value in points
sheet.setDefaultColumnWidth((short) 14); sheet.setDefaultRowHeight((short) 360);
assertEquals((short) 14, sheet.getDefaultColumnWidth()); assertEquals((float) 18, sheet.getDefaultRowHeightInPoints());
} // Set a new default row height in points and test getting the value in twips
sheet.setDefaultRowHeightInPoints((short) 17);
public void testGetSetColumnWidth() throws Exception { assertEquals((short) 340, sheet.getDefaultRowHeight());
XSSFWorkbook workbook = new XSSFWorkbook(); }
Sheet sheet = workbook.createSheet("Sheet 1");
// Test setting a column width and getting that value public void testGetSetDefaultColumnWidth() {
sheet.setColumnWidth((short) 0, (short) 16); XSSFWorkbook workbook = new XSSFWorkbook();
assertEquals(16, sheet.getColumnWidth((short) 0)); Sheet sheet = workbook.createSheet("Sheet 1");
} // Test that default column width set by the constructor
assertEquals((short) 13, sheet.getDefaultColumnWidth());
// Set a new default column width and get its value
sheet.setDefaultColumnWidth((short) 14);
assertEquals((short) 14, sheet.getDefaultColumnWidth());
}
public void testGetSetColumnWidth() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
// Test setting a column width and getting that value
sheet.setColumnWidth((short) 0, (short) 16);
assertEquals(16, sheet.getColumnWidth((short) 0));
}
public void testGetFirstLastRowNum() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
Row row10 = sheet.createRow(9);
Row row1 = sheet.createRow(0);
Row row2 = sheet.createRow(1);
assertEquals(0, sheet.getFirstRowNum());
assertEquals(9, sheet.getLastRowNum());
}
public void testGetPhysicalNumberOfRows() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
Row row10 = sheet.createRow(9);
Row row1 = sheet.createRow(0);
Row row2 = sheet.createRow(1);
assertEquals(3, sheet.getPhysicalNumberOfRows());
}
public void testGetSetRowBreaks() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
assertNull(sheet.getRowBreaks());
sheet.setRowBreak(1);
sheet.setRowBreak(15);
assertNotNull(sheet.getRowBreaks());
assertEquals(1, sheet.getRowBreaks()[0]);
assertEquals(15, sheet.getRowBreaks()[1]);
sheet.setRowBreak(1);
assertEquals(2, sheet.getRowBreaks().length);
}
public void testRemoveRowBreak() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
sheet.setRowBreak(1);
assertEquals(1, sheet.getRowBreaks().length);
sheet.setRowBreak(2);
assertEquals(2, sheet.getRowBreaks().length);
sheet.removeRowBreak(1);
assertEquals(1, sheet.getRowBreaks().length);
}
public void testGetSetColumnBreaks() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
assertNull(sheet.getColumnBreaks());
sheet.setColumnBreak((short) 11);
assertNotNull(sheet.getColumnBreaks());
assertEquals(11, sheet.getColumnBreaks()[0]);
sheet.setColumnBreak((short) 11223);
assertEquals(2, sheet.getColumnBreaks().length);
}
public void testRemoveColumnBreak() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
assertNull(sheet.getColumnBreaks());
sheet.setColumnBreak((short) 11);
assertNotNull(sheet.getColumnBreaks());
sheet.setColumnBreak((short) 12);
assertEquals(2, sheet.getColumnBreaks().length);
sheet.removeColumnBreak((short) 11);
assertEquals(1, sheet.getColumnBreaks().length);
sheet.removeColumnBreak((short) 15);
assertEquals(1, sheet.getColumnBreaks().length);
}
public void testIsRowColumnBroken() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
assertFalse(sheet.isRowBroken(0));
sheet.setRowBreak(3);
assertTrue(sheet.isRowBroken(3));
assertFalse(sheet.isColumnBroken((short) 0));
sheet.setColumnBreak((short) 3);
assertTrue(sheet.isColumnBroken((short) 3));
}
public void testGetSetAutoBreaks() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
assertTrue(sheet.getAutobreaks());
sheet.setAutobreaks(false);
assertFalse(sheet.getAutobreaks());
}
public void testIsSetColumnHidden() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
sheet.setColumnWidth((short) 0, (short) 13);
sheet.setColumnHidden((short) 1, false);
sheet.setColumnHidden((short) 2, true);
assertFalse(sheet.isColumnHidden((short) 0));
assertFalse(sheet.isColumnHidden((short) 1));
assertTrue(sheet.isColumnHidden((short) 2));
}
public void testIsSetFitToPage() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
assertFalse(sheet.getFitToPage());
sheet.setFitToPage(true);
assertTrue(sheet.getFitToPage());
sheet.setFitToPage(false);
assertFalse(sheet.getFitToPage());
}
public void testGetSetMargin() {
XSSFWorkbook workbook = new XSSFWorkbook();
Sheet sheet = workbook.createSheet("Sheet 1");
assertEquals((double) 0, sheet.getMargin((short) 0));
sheet.setMargin((short) 0, 10);
sheet.setMargin((short) 1, 11);
sheet.setMargin((short) 2, 12);
sheet.setMargin((short) 3, 13);
sheet.setMargin((short) 4, 14);
sheet.setMargin((short) 5, 15);
assertEquals((double) 10, sheet.getMargin((short) 0));
assertEquals((double) 11, sheet.getMargin((short) 1));
assertEquals((double) 12, sheet.getMargin((short) 2));
assertEquals((double) 13, sheet.getMargin((short) 3));
assertEquals((double) 14, sheet.getMargin((short) 4));
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));
assertEquals((double) 11, sheet.getMargin((short) 1));
assertEquals((double) 12, sheet.getMargin((short) 2));
assertEquals((double) 13, sheet.getMargin((short) 3));
assertEquals((double) 14, sheet.getMargin((short) 4));
assertEquals((double) 15, sheet.getMargin((short) 5));
}
} }