dmui 2004/02/09 14:41:27
Modified: src/testcases/org/apache/poi/hssf/usermodel Tag:
REL_2_BRANCH TestCloneSheet.java
TestSheetShiftRows.java TestHSSFSheet.java
src/java/org/apache/poi/hssf/record Tag: REL_2_BRANCH
RecordFactory.java
src/java/org/apache/poi/hssf/model Tag: REL_2_BRANCH
Sheet.java
src/java/org/apache/poi/hssf/dev Tag: REL_2_BRANCH
BiffViewer.java
src/java/org/apache/poi/hssf/usermodel Tag: REL_2_BRANCH
HSSFSheet.java
src/testcases/org/apache/poi/hssf/model Tag: REL_2_BRANCH
SheetTest.java
Added: src/java/org/apache/poi/hssf/record Tag: REL_2_BRANCH
VerticalPageBreakRecord.java
HorizontalPageBreakRecord.java PageBreakRecord.java
src/testcases/org/apache/poi/hssf/data Tag: REL_2_BRANCH
SimpleWithPageBreaks.xls
Log:
Patch to support Horizontal and Vertical Page breaks, included testcases
and files.
PR:
Obtained from:
Submitted by:
Reviewed by:
CVS: ----------------------------------------------------------------------
CVS: PR:
CVS: If this change addresses a PR in the problem report tracking
CVS: database, then enter the PR number(s) here.
CVS: Obtained from:
CVS: If this change has been taken from another system, such as NCSA,
CVS: then name the system in this line, otherwise delete it.
CVS: Submitted by:
CVS: If this code has been contributed to Apache by someone else; i.e.,
CVS: they sent us a patch or a new module, then include their name/email
CVS: address here. If this is your work then delete this line.
CVS: Reviewed by:
CVS: If we are doing pre-commit code reviews and someone else has
CVS: reviewed your changes, include their name(s) here.
CVS: If you have not had it reviewed then delete this line.
Revision Changes Path
No revision
No revision
1.2.2.2 +19 -0
jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestCloneSheet.java
Index: TestCloneSheet.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestCloneSheet.java,v
retrieving revision 1.2.2.1
retrieving revision 1.2.2.2
diff -u -r1.2.2.1 -r1.2.2.2
--- TestCloneSheet.java 13 Oct 2003 16:45:01 -0000 1.2.2.1
+++ TestCloneSheet.java 9 Feb 2004 22:41:26 -0000 1.2.2.2
@@ -82,4 +82,23 @@
catch(Exception e){e.printStackTrace();fail(e.getMessage());}
}
+ /**
+ * Ensures that pagebreak cloning works properly
+ *
+ */
+ public void testPageBreakClones() {
+ HSSFWorkbook b = new HSSFWorkbook();
+ HSSFSheet s = b.createSheet("Test");
+ s.setRowBreak(3);
+ s.setColumnBreak((short)6);
+
+ HSSFSheet clone = b.cloneSheet(0);
+ assertTrue("Row 3 not broken", clone.isRowBroken(3));
+ assertTrue("Column 6 not broken", clone.isColumnBroken((short)6));
+
+ s.removeRowBreak(3);
+
+ assertTrue("Row 3 still should be broken", clone.isRowBroken(3));
+ }
+
}
1.2.2.2 +26 -10
jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestSheetShiftRows.java
Index: TestSheetShiftRows.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestSheetShiftRows.java,v
retrieving revision 1.2.2.1
retrieving revision 1.2.2.2
diff -u -r1.2.2.1 -r1.2.2.2
--- TestSheetShiftRows.java 23 Oct 2003 17:16:03 -0000 1.2.2.1
+++ TestSheetShiftRows.java 9 Feb 2004 22:41:26 -0000 1.2.2.2
@@ -169,11 +169,11 @@
* @author Toshiaki Kamoshida (kamoshida.toshiaki at future dot co dot jp)
*/
public void testShiftRow(){
- HSSFWorkbook b = new HSSFWorkbook();
- HSSFSheet s = b.createSheet();
- s.createRow(0).createCell((short)0).setCellValue("TEST1");
- s.createRow(3).createCell((short)0).setCellValue("TEST2");
- s.shiftRows(0,4,1);
+ HSSFWorkbook b = new HSSFWorkbook();
+ HSSFSheet s = b.createSheet();
+ s.createRow(0).createCell((short)0).setCellValue("TEST1");
+ s.createRow(3).createCell((short)0).setCellValue("TEST2");
+ s.shiftRows(0,4,1);
}
/**
@@ -182,11 +182,27 @@
* @author Toshiaki Kamoshida (kamoshida.toshiaki at future dot co dot jp)
*/
public void testShiftRow0(){
- HSSFWorkbook b = new HSSFWorkbook();
- HSSFSheet s = b.createSheet();
- s.createRow(0).createCell((short)0).setCellValue("TEST1");
- s.createRow(3).createCell((short)0).setCellValue("TEST2");
- s.shiftRows(0,4,1);
+ HSSFWorkbook b = new HSSFWorkbook();
+ HSSFSheet s = b.createSheet();
+ s.createRow(0).createCell((short)0).setCellValue("TEST1");
+ s.createRow(3).createCell((short)0).setCellValue("TEST2");
+ s.shiftRows(0,4,1);
+ }
+
+ /**
+ * When shifting rows, the page breaks should go with it
+ *
+ */
+ public void testShiftRowBreaks(){
+ HSSFWorkbook b = new HSSFWorkbook();
+ HSSFSheet s = b.createSheet();
+ HSSFRow row = s.createRow(4);
+ row.createCell((short)0).setCellValue("test");
+ s.setRowBreak(4);
+
+ s.shiftRows(4, 4, 2);
+ assertTrue("Row number 6 should have a pagebreak", s.isRowBroken(6));
+
}
}
1.12.2.6 +66 -17
jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java
Index: TestHSSFSheet.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java,v
retrieving revision 1.12.2.5
retrieving revision 1.12.2.6
diff -u -r1.12.2.5 -r1.12.2.6
--- TestHSSFSheet.java 23 Aug 2003 18:54:28 -0000 1.12.2.5
+++ TestHSSFSheet.java 9 Feb 2004 22:41:26 -0000 1.12.2.6
@@ -1,7 +1,7 @@
/* ====================================================================
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2003 The Apache Software Foundation. All rights
+ * Copyright (c) 2004 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -345,8 +345,8 @@
* @author Shawn Laubach (slaubach at apache dot org)
*/
public void testDisplayOptions() throws Exception {
- HSSFWorkbook wb = new HSSFWorkbook();
- HSSFSheet sheet = wb.createSheet();
+ HSSFWorkbook wb = new HSSFWorkbook();
+ HSSFSheet sheet = wb.createSheet();
File tempFile = File.createTempFile("display", "test.xls");
FileOutputStream stream = new FileOutputStream(tempFile);
@@ -356,15 +356,15 @@
FileInputStream readStream = new FileInputStream(tempFile);
wb = new HSSFWorkbook(readStream);
sheet = wb.getSheetAt(0);
- readStream.close();
-
- assertEquals(sheet.isDisplayGridlines(), true);
- assertEquals(sheet.isDisplayRowColHeadings(), true);
- assertEquals(sheet.isDisplayFormulas(), false);
-
- sheet.setDisplayGridlines(false);
- sheet.setDisplayRowColHeadings(false);
- sheet.setDisplayFormulas(true);
+ readStream.close();
+
+ assertEquals(sheet.isDisplayGridlines(), true);
+ assertEquals(sheet.isDisplayRowColHeadings(), true);
+ assertEquals(sheet.isDisplayFormulas(), false);
+
+ sheet.setDisplayGridlines(false);
+ sheet.setDisplayRowColHeadings(false);
+ sheet.setDisplayFormulas(true);
tempFile = File.createTempFile("display", "test.xls");
stream = new FileOutputStream(tempFile);
@@ -374,14 +374,63 @@
readStream = new FileInputStream(tempFile);
wb = new HSSFWorkbook(readStream);
sheet = wb.getSheetAt(0);
- readStream.close();
+ readStream.close();
+
+
+ assertEquals(sheet.isDisplayGridlines(), false);
+ assertEquals(sheet.isDisplayRowColHeadings(), false);
+ assertEquals(sheet.isDisplayFormulas(), true);
+ }
+
+
+ /**
+ * Make sure the excel file loads work
+ *
+ */
+ public void testPageBreakFiles() throws Exception{
+ FileInputStream fis = null;
+ HSSFWorkbook wb = null;
+
+ String filename = System.getProperty("HSSF.testdata.path");
+ filename = filename + "/SimpleWithPageBreaks.xls";
+ fis = new FileInputStream(filename);
+ wb = new HSSFWorkbook(fis);
+ fis.close();
+
+ HSSFSheet sheet = wb.getSheetAt(0);
+ assertNotNull(sheet);
+
+ assertEquals("1 row page break", 1, sheet.getRowBreaks().length);
+ assertEquals("1 column page break", 1, sheet.getColumnBreaks().length);
- assertEquals(sheet.isDisplayGridlines(), false);
- assertEquals(sheet.isDisplayRowColHeadings(), false);
- assertEquals(sheet.isDisplayFormulas(), true);
- }
+ assertTrue("No row page break", sheet.isRowBroken(22));
+ assertTrue("No column page break", sheet.isColumnBroken((short)4));
+
+ sheet.setRowBreak(10);
+ sheet.setColumnBreak((short)13);
+
+ assertEquals("row breaks number", 2, sheet.getRowBreaks().length);
+ assertEquals("column breaks number", 2, sheet.getColumnBreaks().length);
+
+ File tempFile = File.createTempFile("display", "testPagebreaks.xls");
+ FileOutputStream stream = new FileOutputStream(tempFile);
+ wb.write(stream);
+ stream.close();
+
+ wb = new HSSFWorkbook(new FileInputStream(tempFile));
+ sheet = wb.getSheetAt(0);
+
+ assertTrue("No row page break", sheet.isRowBroken(22));
+ assertTrue("No column page break", sheet.isColumnBroken((short)4));
+
+ assertEquals("row breaks number", 2, sheet.getRowBreaks().length);
+ assertEquals("column breaks number", 2, sheet.getColumnBreaks().length);
+
+
+ }
+
public static void main(java.lang.String[] args) {
junit.textui.TestRunner.run(TestHSSFSheet.class);
}
No revision
No revision
1.16.2.1 +5 -3
jakarta-poi/src/java/org/apache/poi/hssf/record/RecordFactory.java
Index: RecordFactory.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/RecordFactory.java,v
retrieving revision 1.16
retrieving revision 1.16.2.1
diff -u -r1.16 -r1.16.2.1
--- RecordFactory.java 8 May 2003 00:02:03 -0000 1.16
+++ RecordFactory.java 9 Feb 2004 22:41:26 -0000 1.16.2.1
@@ -2,7 +2,7 @@
/* ====================================================================
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2003 The Apache Software Foundation. All rights
+ * Copyright (c) 2004 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -112,7 +112,8 @@
FormulaRecord.class, BoolErrRecord.class, ExternSheetRecord.class,
NameRecord.class, LeftMarginRecord.class, RightMarginRecord.class,
TopMarginRecord.class, BottomMarginRecord.class,
- PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class
+ PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class,
+ HorizontalPageBreakRecord.class, VerticalPageBreakRecord.class
};
} else {
records = new Class[]
@@ -143,7 +144,8 @@
BoolErrRecord.class, ExternSheetRecord.class, NameRecord.class,
LeftMarginRecord.class, RightMarginRecord.class,
TopMarginRecord.class, BottomMarginRecord.class,
- PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class
+ PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class,
+ HorizontalPageBreakRecord.class, VerticalPageBreakRecord.class
};
}
No revision
Index: RecordFactory.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/RecordFactory.java,v
retrieving revision 1.16
retrieving revision 1.16.2.1
diff -u -r1.16 -r1.16.2.1
--- RecordFactory.java 8 May 2003 00:02:03 -0000 1.16
+++ RecordFactory.java 9 Feb 2004 22:41:26 -0000 1.16.2.1
@@ -2,7 +2,7 @@
/* ====================================================================
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2003 The Apache Software Foundation. All rights
+ * Copyright (c) 2004 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -112,7 +112,8 @@
FormulaRecord.class, BoolErrRecord.class, ExternSheetRecord.class,
NameRecord.class, LeftMarginRecord.class, RightMarginRecord.class,
TopMarginRecord.class, BottomMarginRecord.class,
- PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class
+ PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class,
+ HorizontalPageBreakRecord.class, VerticalPageBreakRecord.class
};
} else {
records = new Class[]
@@ -143,7 +144,8 @@
BoolErrRecord.class, ExternSheetRecord.class, NameRecord.class,
LeftMarginRecord.class, RightMarginRecord.class,
TopMarginRecord.class, BottomMarginRecord.class,
- PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class
+ PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class,
+ HorizontalPageBreakRecord.class, VerticalPageBreakRecord.class
};
}
No revision
Index: RecordFactory.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/RecordFactory.java,v
retrieving revision 1.16
retrieving revision 1.16.2.1
diff -u -r1.16 -r1.16.2.1
--- RecordFactory.java 8 May 2003 00:02:03 -0000 1.16
+++ RecordFactory.java 9 Feb 2004 22:41:26 -0000 1.16.2.1
@@ -2,7 +2,7 @@
/* ====================================================================
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2003 The Apache Software Foundation. All rights
+ * Copyright (c) 2004 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -112,7 +112,8 @@
FormulaRecord.class, BoolErrRecord.class, ExternSheetRecord.class,
NameRecord.class, LeftMarginRecord.class, RightMarginRecord.class,
TopMarginRecord.class, BottomMarginRecord.class,
- PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class
+ PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class,
+ HorizontalPageBreakRecord.class, VerticalPageBreakRecord.class
};
} else {
records = new Class[]
@@ -143,7 +144,8 @@
BoolErrRecord.class, ExternSheetRecord.class, NameRecord.class,
LeftMarginRecord.class, RightMarginRecord.class,
TopMarginRecord.class, BottomMarginRecord.class,
- PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class
+ PaletteRecord.class, StringRecord.class, RecalcIdRecord.class,
SharedFormulaRecord.class,
+ HorizontalPageBreakRecord.class, VerticalPageBreakRecord.class
};
}
1.1.2.1 +107 -0
jakarta-poi/src/java/org/apache/poi/hssf/record/Attic/VerticalPageBreakRecord.java
1.1.2.1 +107 -0
jakarta-poi/src/java/org/apache/poi/hssf/record/Attic/HorizontalPageBreakRecord.java
1.1.2.1 +304 -0
jakarta-poi/src/java/org/apache/poi/hssf/record/Attic/PageBreakRecord.java
No revision
No revision
1.31.2.9 +200 -49 jakarta-poi/src/java/org/apache/poi/hssf/model/Sheet.java
Index: Sheet.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/model/Sheet.java,v
retrieving revision 1.31.2.8
retrieving revision 1.31.2.9
diff -u -r1.31.2.8 -r1.31.2.9
--- Sheet.java 21 Sep 2003 09:58:24 -0000 1.31.2.8
+++ Sheet.java 9 Feb 2004 22:41:26 -0000 1.31.2.9
@@ -2,7 +2,7 @@
/* ====================================================================
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2003 The Apache Software Foundation. All rights
+ * Copyright (c) 2004 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -111,7 +111,7 @@
protected WindowTwoRecord windowTwo = null;
protected MergeCellsRecord merged = null;
protected Margin margins[] = null;
- protected List mergedRecords = new ArrayList();
+ protected List mergedRecords = new ArrayList();
protected int numMergedRegions = 0;
protected SelectionRecord selection = null;
private static POILogger log =
POILogFactory.getLogger(Sheet.class);
@@ -121,8 +121,11 @@
private Iterator valueRecIterator = null;
private Iterator rowRecIterator = null;
protected int eofLoc = 0;
- protected ProtectRecord protect = null;
-
+ protected ProtectRecord protect = null;
+ protected PageBreakRecord rowBreaks =
null;
+ protected PageBreakRecord colBreaks =
null;
+
+
public static final byte PANE_LOWER_RIGHT = (byte)0;
public static final byte PANE_UPPER_RIGHT = (byte)1;
public static final byte PANE_LOWER_LEFT = (byte)2;
@@ -155,7 +158,7 @@
*/
public static Sheet createSheet(List recs, int sheetnum, int offset)
{
- log.logFormatted(log.DEBUG,
+ log.logFormatted(POILogger.DEBUG,
"Sheet createSheet (existing file) with %",
new Integer(recs.size()));
Sheet retval = new Sheet();
@@ -170,18 +173,18 @@
if (rec.getSid() == LabelRecord.sid)
{
- log.log(log.DEBUG, "Hit label record.");
+ log.log(POILogger.DEBUG, "Hit label record.");
retval.containsLabels = true;
}
else if (rec.getSid() == BOFRecord.sid)
{
bofEofNestingLevel++;
- log.log(log.DEBUG, "Hit BOF record. Nesting increased to " +
bofEofNestingLevel);
+ log.log(POILogger.DEBUG, "Hit BOF record. Nesting increased to " +
bofEofNestingLevel);
}
else if (rec.getSid() == EOFRecord.sid)
{
--bofEofNestingLevel;
- log.log(log.DEBUG, "Hit EOF record. Nesting decreased to " +
bofEofNestingLevel);
+ log.log(POILogger.DEBUG, "Hit EOF record. Nesting decreased to " +
bofEofNestingLevel);
if (bofEofNestingLevel == 0) {
records.add(rec);
retval.eofLoc = k;
@@ -289,8 +292,16 @@
else if ( rec.getSid() == ProtectRecord.sid )
{
retval.protect = (ProtectRecord) rec;
+ }
+ else if (rec.getSid() == PageBreakRecord.HORIZONTAL_SID)
+ {
+ retval.rowBreaks = (PageBreakRecord)rec;
}
-
+ else if (rec.getSid() == PageBreakRecord.VERTICAL_SID)
+ {
+ retval.colBreaks = (PageBreakRecord)rec;
+ }
+
if (rec != null)
{
records.add(rec);
@@ -307,7 +318,7 @@
// {
// retval.cells = new ValueRecordsAggregate();
// }
- log.log(log.DEBUG, "sheet createSheet (existing file) exited");
+ log.log(POILogger.DEBUG, "sheet createSheet (existing file) exited");
return retval;
}
@@ -366,7 +377,7 @@
public static Sheet createSheet(List records, int sheetnum)
{
- log.log(log.DEBUG,
+ log.log(POILogger.DEBUG,
"Sheet createSheet (exisiting file) assumed offset 0");
return createSheet(records, sheetnum, 0);
}
@@ -381,7 +392,7 @@
public static Sheet createSheet()
{
- log.log(log.DEBUG, "Sheet createsheet from scratch called");
+ log.log(POILogger.DEBUG, "Sheet createsheet from scratch called");
Sheet retval = new Sheet();
ArrayList records = new ArrayList(30);
@@ -404,8 +415,14 @@
(DefaultRowHeightRecord) retval.createDefaultRowHeight();
records.add( retval.defaultrowheight );
records.add( retval.createWSBool() );
+
+ retval.rowBreaks = new PageBreakRecord(PageBreakRecord.HORIZONTAL_SID);
+ records.add(retval.rowBreaks);
+ retval.colBreaks = new PageBreakRecord(PageBreakRecord.VERTICAL_SID);
+ records.add(retval.colBreaks);
+
retval.header = (HeaderRecord) retval.createHeader();
- records.add( retval.header );
+ records.add( retval.header );
retval.footer = (FooterRecord) retval.createFooter();
records.add( retval.footer );
records.add( retval.createHCenter() );
@@ -415,9 +432,9 @@
retval.defaultcolwidth =
(DefaultColWidthRecord) retval.createDefaultColWidth();
records.add( retval.defaultcolwidth);
- retval.dims = ( DimensionsRecord ) retval.createDimensions();
- retval.dimsloc = 19;
+ retval.dims = ( DimensionsRecord ) retval.createDimensions();
records.add(retval.dims);
+ retval.dimsloc = records.size()-1;
records.add(retval.windowTwo = retval.createWindowTwo());
retval.setLoc(records.size() - 1);
retval.selection =
@@ -426,8 +443,9 @@
retval.protect = (ProtectRecord) retval.createProtect();
records.add(retval.protect);
records.add(retval.createEOF());
+
retval.records = records;
- log.log(log.DEBUG, "Sheet createsheet from scratch exit");
+ log.log(POILogger.DEBUG, "Sheet createsheet from scratch exit");
return retval;
}
@@ -566,7 +584,7 @@
public void convertLabelRecords(Workbook wb)
{
- log.log(log.DEBUG, "convertLabelRecords called");
+ log.log(POILogger.DEBUG, "convertLabelRecords called");
if (containsLabels)
{
for (int k = 0; k < records.size(); k++)
@@ -590,7 +608,7 @@
}
}
}
- log.log(log.DEBUG, "convertLabelRecords exit");
+ log.log(POILogger.DEBUG, "convertLabelRecords exit");
}
/**
@@ -604,8 +622,8 @@
{
checkCells();
checkRows();
- log.log(log.DEBUG, "Sheet.getNumRecords");
- log.logFormatted(log.DEBUG, "returning % + % + % - 2 = %", new int[]
+ log.log(POILogger.DEBUG, "Sheet.getNumRecords");
+ log.logFormatted(POILogger.DEBUG, "returning % + % + % - 2 = %", new int[]
{
records.size(), cells.getPhysicalNumberOfCells(),
rows.getPhysicalNumberOfRows(),
@@ -628,8 +646,8 @@
public void setDimensions(int firstrow, short firstcol, int lastrow,
short lastcol)
{
- log.log(log.DEBUG, "Sheet.setDimensions");
- log.log(log.DEBUG,
+ log.log(POILogger.DEBUG, "Sheet.setDimensions");
+ log.log(POILogger.DEBUG,
(new StringBuffer("firstrow")).append(firstrow)
.append("firstcol").append(firstcol).append("lastrow")
.append(lastrow).append("lastcol").append(lastcol)
@@ -638,7 +656,7 @@
dims.setFirstRow(firstrow);
dims.setLastCol(lastcol);
dims.setLastRow(lastrow);
- log.log(log.DEBUG, "Sheet.setDimensions exiting");
+ log.log(POILogger.DEBUG, "Sheet.setDimensions exiting");
}
/**
@@ -660,7 +678,7 @@
public void setLoc(int loc)
{
valueRecIterator = null;
- log.log(log.DEBUG, "sheet.setLoc(): " + loc);
+ log.log(POILogger.DEBUG, "sheet.setLoc(): " + loc);
this.loc = loc;
}
@@ -671,7 +689,7 @@
public int getLoc()
{
- log.log(log.DEBUG, "sheet.getLoc():" + loc);
+ log.log(POILogger.DEBUG, "sheet.getLoc():" + loc);
return loc;
}
@@ -709,7 +727,7 @@
public byte [] serialize()
{
- log.log(log.DEBUG, "Sheet.serialize");
+ log.log(POILogger.DEBUG, "Sheet.serialize");
// addDBCellRecords();
byte[] retval = null;
@@ -726,7 +744,7 @@
// for (int k = 0; k < bytes.size(); k++)
// {
// arraysize += (( byte [] ) bytes.get(k)).length;
- // log.debug((new StringBuffer("arraysize=")).append(arraysize)
+ // POILogger.DEBUG((new StringBuffer("arraysize=")).append(arraysize)
// .toString());
// }
retval = new byte[ arraysize ];
@@ -738,7 +756,7 @@
pos += (( Record ) records.get(k)).serialize(pos,
retval); // rec.length;
}
- log.log(log.DEBUG, "Sheet.serialize returning " + retval);
+ log.log(POILogger.DEBUG, "Sheet.serialize returning " + retval);
return retval;
}
@@ -753,7 +771,7 @@
public int serialize(int offset, byte [] data)
{
- log.log(log.DEBUG, "Sheet.serialize using offsets");
+ log.log(POILogger.DEBUG, "Sheet.serialize using offsets");
// addDBCellRecords();
// ArrayList bytes = new ArrayList(4096);
@@ -768,7 +786,7 @@
// for (int k = 0; k < bytes.size(); k++)
// {
// arraysize += (( byte [] ) bytes.get(k)).length;
- // log.debug((new StringBuffer("arraysize=")).append(arraysize)
+ // POILogger.DEBUG((new StringBuffer("arraysize=")).append(arraysize)
// .toString());
// }
for (int k = 0; k < records.size(); k++)
@@ -787,7 +805,7 @@
pos += record.serialize(pos + offset, data ); // rec.length;
}
- log.log(log.DEBUG, "Sheet.serialize returning ");
+ log.log(POILogger.DEBUG, "Sheet.serialize returning ");
return pos;
}
@@ -801,7 +819,7 @@
public RowRecord createRow(int row)
{
- log.log(log.DEBUG, "create row number " + row);
+ log.log(POILogger.DEBUG, "create row number " + row);
RowRecord rowrec = new RowRecord();
//rowrec.setRowNumber(( short ) row);
@@ -826,7 +844,7 @@
//public LabelSSTRecord createLabelSST(short row, short col, int index)
public LabelSSTRecord createLabelSST(int row, short col, int index)
{
- log.logFormatted(log.DEBUG, "create labelsst row,col,index %,%,%",
+ log.logFormatted(POILogger.DEBUG, "create labelsst row,col,index %,%,%",
new int[]
{
row, col, index
@@ -853,7 +871,7 @@
//public NumberRecord createNumber(short row, short col, double value)
public NumberRecord createNumber(int row, short col, double value)
{
- log.logFormatted(log.DEBUG, "create number row,col,value %,%,%",
+ log.logFormatted(POILogger.DEBUG, "create number row,col,value %,%,%",
new double[]
{
row, col, value
@@ -878,8 +896,8 @@
//public BlankRecord createBlank(short row, short col)
public BlankRecord createBlank(int row, short col)
{
- //log.logFormatted(log.DEBUG, "create blank row,col %,%", new short[]
- log.logFormatted(log.DEBUG, "create blank row,col %,%", new int[]
+ //log.logFormatted(POILogger.DEBUG, "create blank row,col %,%", new short[]
+ log.logFormatted(POILogger.DEBUG, "create blank row,col %,%", new int[]
{
row, col
});
@@ -905,7 +923,7 @@
//public FormulaRecord createFormula(short row, short col, String formula)
public FormulaRecord createFormula(int row, short col, String formula)
{
- log.logFormatted(log.DEBUG, "create formula row,col,formula %,%,%",
+ log.logFormatted(POILogger.DEBUG, "create formula row,col,formula %,%,%",
//new short[]
new int[]
{
@@ -949,7 +967,7 @@
public void addValueRecord(int row, CellValueRecordInterface col)
{
checkCells();
- log.logFormatted(log.DEBUG, "add value record row,loc %,%", new int[]
+ log.logFormatted(POILogger.DEBUG, "add value record row,loc %,%", new int[]
{
row, loc
});
@@ -1003,7 +1021,7 @@
public void removeValueRecord(int row, CellValueRecordInterface col)
{
checkCells();
- log.logFormatted(log.DEBUG, "remove value record row,dimsloc %,%",
+ log.logFormatted(POILogger.DEBUG, "remove value record row,dimsloc %,%",
new int[]{row, dimsloc} );
loc = dimsloc;
cells.removeCell(col);
@@ -1044,7 +1062,7 @@
{
checkCells();
setLoc(dimsloc);
- log.log(log.DEBUG, "replaceValueRecord ");
+ log.log(POILogger.DEBUG, "replaceValueRecord ");
cells.insertCell(newval);
/*
@@ -1080,7 +1098,7 @@
public void addRow(RowRecord row)
{
checkRows();
- log.log(log.DEBUG, "addRow ");
+ log.log(POILogger.DEBUG, "addRow ");
DimensionsRecord d = ( DimensionsRecord ) records.get(getDimsLoc());
if (row.getRowNumber() > d.getLastRow())
@@ -1134,7 +1152,7 @@
* }
* }
*/
- log.log(log.DEBUG, "exit addRow");
+ log.log(POILogger.DEBUG, "exit addRow");
}
/**
@@ -1194,7 +1212,7 @@
public CellValueRecordInterface getNextValueRecord()
{
- log.log(log.DEBUG, "getNextValue loc= " + loc);
+ log.log(POILogger.DEBUG, "getNextValue loc= " + loc);
if (valueRecIterator == null)
{
valueRecIterator = cells.getIterator();
@@ -1241,7 +1259,7 @@
/* public Record getNextRowOrValue()
{
- log.debug((new StringBuffer("getNextRow loc= ")).append(loc)
+ POILogger.DEBUG((new StringBuffer("getNextRow loc= ")).append(loc)
.toString());
if (this.getLoc() < records.size())
{
@@ -1281,7 +1299,7 @@
public RowRecord getNextRow()
{
- log.log(log.DEBUG, "getNextRow loc= " + loc);
+ log.log(POILogger.DEBUG, "getNextRow loc= " + loc);
if (rowRecIterator == null)
{
rowRecIterator = rows.getIterator();
@@ -1327,7 +1345,7 @@
//public RowRecord getRow(short rownum)
public RowRecord getRow(int rownum)
{
- log.log(log.DEBUG, "getNextRow loc= " + loc);
+ log.log(POILogger.DEBUG, "getNextRow loc= " + loc);
return rows.getRow(rownum);
/*
@@ -1543,7 +1561,7 @@
{
RefModeRecord retval = new RefModeRecord();
- retval.setMode(retval.USE_A1_MODE);
+ retval.setMode(RefModeRecord.USE_A1_MODE);
return retval;
}
@@ -2161,7 +2179,7 @@
public int getDimsLoc()
{
- log.log(log.DEBUG, "getDimsLoc dimsloc= " + dimsloc);
+ log.log(POILogger.DEBUG, "getDimsLoc dimsloc= " + dimsloc);
return dimsloc;
}
@@ -2533,7 +2551,7 @@
protected Record createProtect()
{
- log.log(log.DEBUG, "create protect record with protection disabled");
+ log.log(POILogger.DEBUG, "create protect record with protection
disabled");
ProtectRecord retval = new ProtectRecord();
retval.setProtect(false);
@@ -2603,5 +2621,138 @@
if (margins == null)
margins = new Margin[4];
return margins;
+ }
+
+ /**
+ * Shifts all the page breaks in the range "count" number of rows/columns
+ * @param breaks The page record to be shifted
+ * @param start Starting "main" value to shift breaks
+ * @param stop Ending "main" value to shift breaks
+ * @param count number of units (rows/columns) to shift by
+ */
+ public void shiftBreaks(PageBreakRecord breaks, short start, short stop, int
count) {
+
+ if(rowBreaks == null)
+ return;
+ Iterator iterator = breaks.getBreaksIterator();
+ List shiftedBreak = new ArrayList();
+ while(iterator.hasNext())
+ {
+ PageBreakRecord.Break breakItem =
(PageBreakRecord.Break)iterator.next();
+ short breakLocation = breakItem.main;
+ boolean inStart = (breakLocation >= start);
+ boolean inEnd = (breakLocation <= stop);
+ if(inStart && inEnd)
+ shiftedBreak.add(breakItem);
+ }
+
+ iterator = shiftedBreak.iterator();
+ while (iterator.hasNext()) {
+ PageBreakRecord.Break breakItem =
(PageBreakRecord.Break)iterator.next();
+ breaks.removeBreak(breakItem.main);
+ breaks.addBreak((short)(breakItem.main+count), breakItem.subFrom,
breakItem.subTo);
+ }
+ }
+
+ /**
+ * Sets a page break at the indicated row
+ * @param row
+ */
+ public void setRowBreak(int row, short fromCol, short toCol) {
+ rowBreaks.addBreak((short)row, fromCol, toCol);
+ }
+
+ /**
+ * Removes a page break at the indicated row
+ * @param row
+ */
+ public void removeRowBreak(int row) {
+ rowBreaks.removeBreak((short)row);
+ }
+
+ /**
+ * Queries if the specified row has a page break
+ * @param row
+ * @return true if the specified row has a page break
+ */
+ public boolean isRowBroken(int row) {
+ return rowBreaks.getBreak((short)row) != null;
+ }
+
+ /**
+ * Sets a page break at the indicated column
+ * @param row
+ */
+ public void setColumnBreak(short column, short fromRow, short toRow) {
+ colBreaks.addBreak(column, fromRow, toRow);
+ }
+
+ /**
+ * Removes a page break at the indicated column
+ * @param row
+ */
+ public void removeColumnBreak(short column) {
+ colBreaks.removeBreak(column);
+ }
+
+ /**
+ * Queries if the specified column has a page break
+ * @param row
+ * @return true if the specified column has a page break
+ */
+ public boolean isColumnBroken(short column) {
+ return colBreaks.getBreak(column) != null;
+ }
+
+ /**
+ * Shifts the horizontal page breaks for the indicated count
+ * @param startingRow
+ * @param endingRow
+ * @param count
+ */
+ public void shiftRowBreaks(int startingRow, int endingRow, int count) {
+ shiftBreaks(rowBreaks, (short)startingRow, (short)endingRow, (short)count);
+ }
+
+ /**
+ * Shifts the vertical page breaks for the indicated count
+ * @param startingCol
+ * @param endingCol
+ * @param count
+ */
+ public void shiftColumnBreaks(short startingCol, short endingCol, short count) {
+ shiftBreaks(colBreaks, startingCol, endingCol, count);
+ }
+
+ /**
+ * Returns all the row page breaks
+ * @return
+ */
+ public Iterator getRowBreaks() {
+ return rowBreaks.getBreaksIterator();
+ }
+
+ /**
+ * Returns the number of row page breaks
+ * @return
+ */
+ public int getNumRowBreaks(){
+ return (int)rowBreaks.getNumBreaks();
+ }
+
+ /**
+ * Returns all the column page breaks
+ * @return
+ */
+ public Iterator getColumnBreaks(){
+ return colBreaks.getBreaksIterator();
+ }
+
+ /**
+ * Returns the number of column page breaks
+ * @return
+ */
+ public int getNumColumnBreaks(){
+ return (int)colBreaks.getNumBreaks();
}
}
No revision
No revision
1.31.2.1 +9 -1 jakarta-poi/src/java/org/apache/poi/hssf/dev/BiffViewer.java
Index: BiffViewer.java
===================================================================
RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/dev/BiffViewer.java,v
retrieving revision 1.31
retrieving revision 1.31.2.1
diff -u -r1.31 -r1.31.2.1
--- BiffViewer.java 8 May 2003 00:02:03 -0000 1.31
+++ BiffViewer.java 9 Feb 2004 22:41:27 -0000 1.31.2.1
@@ -2,7 +2,7 @@
* ====================================================================
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2003 The Apache Software Foundation. All rights
+ * Copyright (c) 2004 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -633,6 +633,14 @@
case SharedFormulaRecord.sid:
retval = new SharedFormulaRecord( rectype, size, data);
break;
+ case HorizontalPageBreakRecord.sid:
+ retval = new HorizontalPageBreakRecord( rectype, size, data);
+ break;
+ case VerticalPageBreakRecord.sid:
+ retval = new VerticalPageBreakRecord( rectype, size, data);
+ break;
+
+
default:
retval = new UnknownRecord( rectype, size, data );
}
No revision
No revision
1.1.2.1 +23 -0
jakarta-poi/src/testcases/org/apache/poi/hssf/data/Attic/SimpleWithPageBreaks.xls
<<Binary file>>
No revision
No revision
1.21.2.4 +111 -4
jakarta-poi/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
Index: HSSFSheet.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java,v
retrieving revision 1.21.2.3
retrieving revision 1.21.2.4
diff -u -r1.21.2.3 -r1.21.2.4
--- HSSFSheet.java 23 Aug 2003 18:54:28 -0000 1.21.2.3
+++ HSSFSheet.java 9 Feb 2004 22:41:27 -0000 1.21.2.4
@@ -1,7 +1,7 @@
/* ====================================================================
* The Apache Software License, Version 1.1
*
- * Copyright (c) 2003 The Apache Software Foundation. All rights
+ * Copyright (c) 2004 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -68,6 +68,7 @@
import org.apache.poi.hssf.model.Workbook;
import org.apache.poi.hssf.record.CellValueRecordInterface;
import org.apache.poi.hssf.record.HCenterRecord;
+import org.apache.poi.hssf.record.PageBreakRecord;
import org.apache.poi.hssf.record.Record;
import org.apache.poi.hssf.record.RowRecord;
import org.apache.poi.hssf.record.SCLRecord;
@@ -981,6 +982,8 @@
* <p>
* Additionally shifts merged regions that are completely defined in these
* rows (ie. merged 2 cells on a row to be shifted).
+ * <p>
+ * TODO Might want to add bounds checking here
* @param startRow the row to start shifting
* @param endRow the row to end shifting
* @param n the number of rows to shift
@@ -1004,7 +1007,8 @@
}
shiftMerged(startRow, endRow, n, true);
-
+ sheet.shiftRowBreaks(startRow, endRow, n);
+
for ( int rowNum = s; rowNum >= startRow && rowNum <= endRow && rowNum >= 0
&& rowNum < 65536; rowNum += inc )
{
HSSFRow row = getRow( rowNum );
@@ -1130,7 +1134,7 @@
* @return whether formulas are displayed
*/
public boolean isDisplayFormulas() {
- return sheet.isDisplayFormulas();
+ return sheet.isDisplayFormulas();
}
/**
@@ -1146,6 +1150,109 @@
* @return whether RowColHeadings are displayed
*/
public boolean isDisplayRowColHeadings() {
- return sheet.isDisplayRowColHeadings();
+ return sheet.isDisplayRowColHeadings();
+ }
+
+ /**
+ * Sets a page break at the indicated row
+ * @param row
+ */
+ public void setRowBreak(int row) {
+ validateRow(row);
+ sheet.setRowBreak(row, (short)0, (short)255);
+ }
+
+ /**
+ * Determines if there is a page break at the indicated row
+ * @param row
+ * @return
+ */
+ public boolean isRowBroken(int row) {
+ return sheet.isRowBroken(row);
+ }
+
+ /**
+ * Removes the page break at the indicated row
+ * @param row
+ */
+ public void removeRowBreak(int row) {
+ sheet.removeRowBreak(row);
+ }
+
+ /**
+ * Retrieves all the horizontal page breaks
+ * @return
+ */
+ public int[] getRowBreaks(){
+ //we can probably cache this information, but this should be a sparsely used
function
+ int[] returnValue = new int[sheet.getNumRowBreaks()];
+ Iterator iterator = sheet.getRowBreaks();
+ int i = 0;
+ while (iterator.hasNext()) {
+ PageBreakRecord.Break breakItem =
(PageBreakRecord.Break)iterator.next();
+ returnValue[i++] = (int)breakItem.main;
+ }
+ return returnValue;
+ }
+
+ /**
+ * Retrieves all the vertical page breaks
+ * @return
+ */
+ public short[] getColumnBreaks(){
+ //we can probably cache this information, but this should be a sparsely used
function
+ short[] returnValue = new short[sheet.getNumColumnBreaks()];
+ Iterator iterator = sheet.getColumnBreaks();
+ int i = 0;
+ while (iterator.hasNext()) {
+ PageBreakRecord.Break breakItem =
(PageBreakRecord.Break)iterator.next();
+ returnValue[i++] = breakItem.main;
+ }
+ return returnValue;
+ }
+
+
+ /**
+ * Sets a page break at the indicated column
+ * @param column
+ */
+ public void setColumnBreak(short column) {
+ validateColumn(column);
+ sheet.setColumnBreak(column, (short)0, (short)65535);
+ }
+
+ /**
+ * Determines if there is a page break at the indicated column
+ * @param column
+ * @return
+ */
+ public boolean isColumnBroken(short column) {
+ return sheet.isColumnBroken(column);
+ }
+
+ /**
+ * Removes a page break at the indicated column
+ * @param column
+ */
+ public void removeColumnBreak(short column) {
+ sheet.removeColumnBreak(column);
+ }
+
+ /**
+ * Runs a bounds check for row numbers
+ * @param row
+ */
+ protected void validateRow(int row) {
+ if (row > 65535) throw new IllegalArgumentException("Maximum row number is
65535");
+ if (row < 0) throw new IllegalArgumentException("Minumum row number is 0");
+ }
+
+ /**
+ * Runs a bounds check for column numbers
+ * @param column
+ */
+ protected void validateColumn(short column) {
+ if (column > 255) throw new IllegalArgumentException("Maximum column number is
255");
+ if (column < 0) throw new IllegalArgumentException("Minimum column number is
0");
}
}
No revision
No revision
1.3.2.2 +121 -0
jakarta-poi/src/testcases/org/apache/poi/hssf/model/SheetTest.java
Index: SheetTest.java
===================================================================
RCS file:
/home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/model/SheetTest.java,v
retrieving revision 1.3.2.1
retrieving revision 1.3.2.2
diff -u -r1.3.2.1 -r1.3.2.2
--- SheetTest.java 6 Sep 2003 18:56:29 -0000 1.3.2.1
+++ SheetTest.java 9 Feb 2004 22:41:27 -0000 1.3.2.2
@@ -2,12 +2,14 @@
import java.lang.reflect.Field;
import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
import junit.framework.TestCase;
import org.apache.poi.hssf.record.ColumnInfoRecord;
import org.apache.poi.hssf.record.MergeCellsRecord;
+import org.apache.poi.hssf.record.PageBreakRecord;
import org.apache.poi.hssf.record.RowRecord;
import org.apache.poi.hssf.record.StringRecord;
@@ -171,6 +173,125 @@
Sheet sheet = Sheet.createSheet(records, 0);
assertNotNull("Row [2] was skipped", sheet.getRow(2));
+ }
+
+ /**
+ * Make sure page break functionality works (in memory)
+ *
+ */
+ public void testRowPageBreaks(){
+ short colFrom = 0;
+ short colTo = 255;
+
+ Sheet sheet = Sheet.createSheet();
+ sheet.setRowBreak(0, colFrom, colTo);
+
+ assertTrue("no row break at 0", sheet.isRowBroken(0));
+ assertEquals("1 row break available", 1, sheet.getNumRowBreaks());
+
+ sheet.setRowBreak(0, colFrom, colTo);
+ sheet.setRowBreak(0, colFrom, colTo);
+
+ assertTrue("no row break at 0", sheet.isRowBroken(0));
+ assertEquals("1 row break available", 1, sheet.getNumRowBreaks());
+
+ sheet.setRowBreak(10, colFrom, colTo);
+ sheet.setRowBreak(11, colFrom, colTo);
+
+ assertTrue("no row break at 10", sheet.isRowBroken(10));
+ assertTrue("no row break at 11", sheet.isRowBroken(11));
+ assertEquals("3 row break available", 3, sheet.getNumRowBreaks());
+
+
+ boolean is10 = false;
+ boolean is0 = false;
+ boolean is11 = false;
+
+ Iterator iterator = sheet.getRowBreaks();
+ while (iterator.hasNext()) {
+ PageBreakRecord.Break breakItem =
(PageBreakRecord.Break)iterator.next();
+ int main = (int)breakItem.main;
+ if (main != 0 && main != 10 && main != 11) fail("Invalid page
break");
+ if (main == 0) is0 = true;
+ if (main == 10) is10= true;
+ if (main == 11) is11 = true;
+ }
+
+ assertTrue("one of the breaks didnt make it", is0 && is10 && is11);
+
+ sheet.removeRowBreak(11);
+ assertFalse("row should be removed", sheet.isRowBroken(11));
+
+ sheet.removeRowBreak(0);
+ assertFalse("row should be removed", sheet.isRowBroken(0));
+
+ sheet.removeRowBreak(10);
+ assertFalse("row should be removed", sheet.isRowBroken(10));
+
+ assertEquals("no more breaks", 0, sheet.getNumRowBreaks());
+
+
+ }
+
+ /**
+ * Make sure column pag breaks works properly (in-memory)
+ *
+ */
+ public void testColPageBreaks(){
+ short rowFrom = 0;
+ short rowTo = (short)65535;
+
+ Sheet sheet = Sheet.createSheet();
+ sheet.setColumnBreak((short)0, rowFrom, rowTo);
+
+ assertTrue("no col break at 0", sheet.isColumnBroken((short)0));
+ assertEquals("1 col break available", 1, sheet.getNumColumnBreaks());
+
+ sheet.setColumnBreak((short)0, rowFrom, rowTo);
+
+ assertTrue("no col break at 0", sheet.isColumnBroken((short)0));
+ assertEquals("1 col break available", 1, sheet.getNumColumnBreaks());
+
+ sheet.setColumnBreak((short)1, rowFrom, rowTo);
+ sheet.setColumnBreak((short)10, rowFrom, rowTo);
+ sheet.setColumnBreak((short)15, rowFrom, rowTo);
+
+ assertTrue("no col break at 1", sheet.isColumnBroken((short)1));
+ assertTrue("no col break at 10", sheet.isColumnBroken((short)10));
+ assertTrue("no col break at 15", sheet.isColumnBroken((short)15));
+ assertEquals("4 col break available", 4, sheet.getNumColumnBreaks());
+
+ boolean is10 = false;
+ boolean is0 = false;
+ boolean is1 = false;
+ boolean is15 = false;
+
+ Iterator iterator = sheet.getColumnBreaks();
+ while (iterator.hasNext()) {
+ PageBreakRecord.Break breakItem =
(PageBreakRecord.Break)iterator.next();
+ int main = (int)breakItem.main;
+ if (main != 0 && main != 1 && main != 10 && main != 15)
fail("Invalid page break");
+ if (main == 0) is0 = true;
+ if (main == 1) is1 = true;
+ if (main == 10) is10= true;
+ if (main == 15) is15 = true;
+ }
+
+ assertTrue("one of the breaks didnt make it", is0 && is1 && is10 &&
is15);
+
+ sheet.removeColumnBreak((short)15);
+ assertFalse("column break should not be there",
sheet.isColumnBroken((short)15));
+
+ sheet.removeColumnBreak((short)0);
+ assertFalse("column break should not be there",
sheet.isColumnBroken((short)0));
+
+ sheet.removeColumnBreak((short)1);
+ assertFalse("column break should not be there",
sheet.isColumnBroken((short)1));
+
+ sheet.removeColumnBreak((short)10);
+ assertFalse("column break should not be there",
sheet.isColumnBroken((short)10));
+
+ assertEquals("no more breaks", 0, sheet.getNumColumnBreaks());
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]