|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.poi.hssf.model.Sheet
public final class Sheet
Low level model implementation of a Sheet (one workbook contains many sheets) This file contains the low level binary records starting at the sheets BOF and ending with the sheets EOF. Use HSSFSheet for a high level representation.
The structures of the highlevel API use references to this to perform most of their operations. Its probably unwise to use these low level structures directly unless you really know what you're doing. I recommend you read the Microsoft Excel 97 Developer's Kit (Microsoft Press) and the documentation at http://sc.openoffice.org/excelfileformat.pdf before even attempting to use this.
Workbook,
HSSFSheet| Constructor Summary | |
|---|---|
Sheet()
Creates new Sheet with no initialization --useless at this point |
|
| Method Summary | |
|---|---|
int |
addConditionalFormatting(CFRecordsAggregate cfAggregate)
|
int |
addMergedRegion(int rowFrom,
short colFrom,
int rowTo,
short colTo)
|
void |
addRow(RowRecord row)
Adds a row record to the sheet |
void |
addValueRecord(int row,
CellValueRecordInterface col)
Adds a value record to the sheet's contained binary records (i.e. |
int |
aggregateDrawingRecords(DrawingManager2 drawingManager,
boolean createIfMissing)
Finds the DrawingRecord for our sheet, and attaches it to the DrawingManager (which knows about the overall DrawingGroup for our workbook). |
void |
checkDimsLoc(Record rec,
int recloc)
in the event the record is a dimensions record, resets both the loc index and dimsloc index |
Sheet |
cloneSheet()
Clones the low level records of this sheet and returns the new sheet instance. |
BlankRecord |
createBlank(int row,
short col)
create a BLANK record (does not add it to the records contained in this sheet) |
protected Record |
createBOF()
creates the BOF record |
protected Record |
createCalcCount()
creates the CalcCount record and sets it to 0x64 (default number of iterations) |
protected Record |
createCalcMode()
creates the CalcMode record and sets it to 1 (automatic formula caculation) |
protected Record |
createColInfo()
creates the ColumnInfo Record and sets it to a default column/width |
protected Record |
createDefaultColWidth()
creates the DefaultColWidth Record and sets it to 8 |
protected Record |
createDefaultRowHeight()
creates the DefaultRowHeight Record and sets its options to 0 and rowheight to 0xff |
protected Record |
createDelta()
creates the Delta record and sets it to 0.0010 (default accuracy) |
protected Record |
createDimensions()
creates the Dimensions Record and sets it to bogus values (you should set this yourself or let the high level API do it for you) |
protected Record |
createEOF()
creates the EOF record |
protected Record |
createFooter()
creates the Footer Record and sets it to nothing/0 length |
FormulaRecord |
createFormula(int row,
short col,
java.lang.String formula)
Attempts to parse the formula into PTGs and create a formula record DOES NOT WORK YET |
void |
createFreezePane(int colSplit,
int rowSplit,
int topRow,
int leftmostColumn)
Creates a split (freezepane). |
protected Record |
createGridset()
creates the Gridset record and sets it to true (user has mucked with the gridlines) |
protected Record |
createGuts()
creates the Guts record and sets leftrow/topcol guttter and rowlevelmax/collevelmax to 0 |
protected Record |
createHCenter()
creates the HCenter Record and sets it to false (don't horizontally center) |
protected Record |
createHeader()
creates the Header Record and sets it to nothing/0 length |
protected Record |
createIndex()
creates the Index record - not currently used |
protected Record |
createIteration()
creates the Iteration record and sets it to false (don't iteratively calculate formulas) |
LabelSSTRecord |
createLabelSST(int row,
short col,
int index)
Create a LABELSST Record (does not add it to the records contained in this sheet) |
protected Record |
createMergedCells()
|
NumberRecord |
createNumber(int row,
short col,
double value)
Create a NUMBER Record (does not add it to the records contained in this sheet) |
protected ObjectProtectRecord |
createObjectProtect()
creates an ObjectProtect record with protect set to false. |
protected PasswordRecord |
createPassword()
creates a Password record with password set to 00. |
protected Record |
createPrintGridlines()
creates the PrintGridlines record and sets it to false (that makes for ugly sheets). |
protected Record |
createPrintHeaders()
creates the PrintHeaders record and sets it to false (we don't create headers yet so why print them) |
protected Record |
createPrintSetup()
creates the PrintSetup Record and sets it to defaults and marks it invalid |
protected Record |
createProtect()
creates a Protect record with protect set to false. |
protected Record |
createRefMode()
creates the RefMode record and sets it to A1 Mode (default reference mode) |
RowRecord |
createRow(int row)
Create a row record. |
protected Record |
createSaveRecalc()
creates the SaveRecalc record and sets it to true (recalculate before saving) |
protected ScenarioProtectRecord |
createScenarioProtect()
creates a ScenarioProtect record with protect set to false. |
protected Record |
createSelection()
Creates the Selection record and sets it to nothing selected |
static Sheet |
createSheet()
Creates a sheet with all the usual records minus values and the "index" record (not required). |
static Sheet |
createSheet(java.util.List records,
int sheetnum)
read support (offset = 0) Same as createSheet(Record[] recs, int, int) only the record offset is assumed to be 0. |
static Sheet |
createSheet(java.util.List recs,
int sheetnum,
int offset)
read support (offset used as starting point for search) for low level API. |
void |
createSplitPane(int xSplitPos,
int ySplitPos,
int topRow,
int leftmostColumn,
int activePane)
Creates a split pane. |
protected Record |
createVCenter()
creates the VCenter Record and sets it to false (don't horizontally center) |
protected WindowTwoRecord |
createWindowTwo()
creates the WindowTwo Record and sets it to: |
protected Record |
createWSBool()
creates the WSBoolRecord and sets its values to defaults |
Record |
findFirstRecordBySid(short sid)
Returns the first occurance of a record matching a particular sid. |
int |
findFirstRecordLocBySid(short sid)
Finds the first occurance of a record matching a particular sid and returns it's position. |
short |
getActiveCellCol()
Returns the active column |
int |
getActiveCellRow()
Returns the active row |
CFRecordsAggregate |
getCFRecordsAggregateAt(int index)
|
java.util.Iterator |
getColumnBreaks()
Returns all the column page breaks |
short |
getColumnWidth(short column)
get the width of a given column in units of 1/256th of a character width |
short |
getDefaultColumnWidth()
get the default column width for the sheet (if the columns do not define their own width) |
short |
getDefaultRowHeight()
get the default row height for the sheet (if the rows do not define their own height) |
int |
getDimsLoc()
get the location of the DimensionsRecord (which is the last record before the value section) |
int |
getEofLoc()
|
FooterRecord |
getFooter()
Returns the FooterRecord. |
GridsetRecord |
getGridsetRecord()
Gets the gridset record for this sheet. |
HeaderRecord |
getHeader()
Returns the HeaderRecord. |
short |
getLeftCol()
|
int |
getLoc()
Returns the location pointer to the first record to look for when adding rows/values |
double |
getMargin(short margin)
Gets the size of the margin in inches. |
protected Margin[] |
getMargins()
Returns the array of margins. |
MergeCellsRecord.MergedRegion |
getMergedRegionAt(int index)
|
RowRecord |
getNextRow()
get the NEXT RowRecord (from LOC). |
CellValueRecordInterface |
getNextValueRecord()
get the NEXT value record (from LOC). |
int |
getNumColumnBreaks()
Returns the number of column page breaks |
int |
getNumConditionalFormattings()
|
int |
getNumMergedRegions()
|
int |
getNumRecords()
Returns the number of low level binary records in this sheet. |
int |
getNumRowBreaks()
Returns the number of row page breaks |
PaneInformation |
getPaneInformation()
Returns the information regarding the currently configured pane (split or freeze). |
PasswordRecord |
getPassword()
Returns the PasswordRecord. |
int |
getPreOffset()
get the preoffset when using DBCELL records (currently unused) - this is the position of this sheet within the whole file. |
PrintGridlinesRecord |
getPrintGridlines()
Returns the PrintGridlinesRecord. |
PrintSetupRecord |
getPrintSetup()
Returns the PrintSetupRecord. |
ProtectRecord |
getProtect()
Returns the ProtectRecord. |
java.util.List |
getRecords()
|
RowRecord |
getRow(int rownum)
get the NEXT (from LOC) RowRecord where rownumber matches the given rownum. |
java.util.Iterator |
getRowBreaks()
Returns all the row page breaks |
SelectionRecord |
getSelection()
|
int |
getSize()
|
short |
getTopRow()
|
boolean |
getUncalced()
|
WindowTwoRecord |
getWindowTwo()
|
short |
getXFIndexForColAt(short column)
get the index to the ExtendedFormatRecord "associated" with the column at specified 0-based index. |
void |
groupColumnRange(short fromColumn,
short toColumn,
boolean indent)
Creates an outline group for the specified columns. |
void |
groupRowRange(int fromRow,
int toRow,
boolean indent)
|
boolean |
isColumnBroken(short column)
Queries if the specified column has a page break |
boolean |
isColumnHidden(short column)
Get the hidden property for a given column. |
boolean |
isDisplayFormulas()
Returns if formulas are displayed. |
boolean |
isDisplayGridlines()
Returns if gridlines are displayed. |
boolean |
isDisplayRowColHeadings()
Returns if RowColHeadings are displayed. |
boolean |
isGridsPrinted()
get whether gridlines are printed. |
boolean[] |
isProtected()
|
boolean |
isRowBroken(int row)
Queries if the specified row has a page break |
void |
preSerialize()
Perform any work necessary before the sheet is about to be serialized. |
void |
protectSheet(java.lang.String password,
boolean objects,
boolean scenarios)
protect a spreadsheet with a password (not encypted, just sets protect flags and the password. |
void |
removeColumnBreak(short column)
Removes a page break at the indicated column |
void |
removeConditionalFormatting(int index)
|
void |
removeMergedRegion(int index)
|
void |
removeRow(RowRecord row)
Removes a row record This method is not loc sensitive, it resets loc to = dimsloc so no worries. |
void |
removeRowBreak(int row)
Removes a page break at the indicated row |
void |
removeValueRecord(int row,
CellValueRecordInterface col)
remove a value record from the records array. |
void |
replaceValueRecord(CellValueRecordInterface newval)
replace a value record from the records array. |
int |
serialize(int offset,
byte[] data)
Serializes all records in the sheet into one big byte array. |
void |
setActiveCellCol(short col)
Sets the active column |
void |
setActiveCellRow(int row)
Sets the active row |
void |
setColumn(short column,
java.lang.Short width,
java.lang.Integer level,
java.lang.Boolean hidden,
java.lang.Boolean collapsed)
|
void |
setColumn(short column,
java.lang.Short xfStyle,
java.lang.Short width,
java.lang.Integer level,
java.lang.Boolean hidden,
java.lang.Boolean collapsed)
|
void |
setColumnBreak(short column,
short fromRow,
short toRow)
Sets a page break at the indicated column |
void |
setColumnGroupCollapsed(short columnNumber,
boolean collapsed)
|
void |
setColumnHidden(short column,
boolean hidden)
Get the hidden property for a given column. |
void |
setColumnWidth(short column,
short width)
set the width for a given column in 1/256th of a character width units |
void |
setDefaultColumnWidth(short dcw)
set the default column width for the sheet (if the columns do not define their own width) |
void |
setDefaultRowHeight(short dch)
set the default row height for the sheet (if the rows do not define their own height) |
void |
setDimensions(int firstrow,
short firstcol,
int lastrow,
short lastcol)
Per an earlier reported bug in working with Andy Khan's excel read library. |
void |
setDisplayFormulas(boolean show)
Sets whether the formulas are shown in a viewer. |
void |
setDisplayGridlines(boolean show)
/** Sets whether the gridlines are shown in a viewer. |
void |
setDisplayRowColHeadings(boolean show)
Sets whether the RowColHeadings are shown in a viewer. |
void |
setFooter(FooterRecord newFooter)
Sets the FooterRecord. |
void |
setGridsPrinted(boolean value)
set whether gridlines printed or not. |
void |
setHeader(HeaderRecord newHeader)
Sets the HeaderRecord. |
void |
setLeftCol(short leftCol)
Sets the left column to show in desktop window pane. |
void |
setLoc(int loc)
set the locator for where we should look for the next value record. |
void |
setMargin(short margin,
double size)
Sets the size of the margin in inches. |
void |
setPreOffset(int offset)
Set the preoffset when using DBCELL records (currently unused) - this is the position of this sheet within the whole file. |
void |
setPrintGridlines(PrintGridlinesRecord newPrintGridlines)
Sets the PrintGridlinesRecord. |
void |
setPrintSetup(PrintSetupRecord newPrintSetup)
Sets the PrintSetupRecord. |
void |
setRowBreak(int row,
short fromCol,
short toCol)
Sets a page break at the indicated row |
void |
setRowGroupCollapsed(int row,
boolean collapse)
|
void |
setSCLRecord(SCLRecord sclRecord)
Sets the SCL record or creates it in the correct place if it does not already exist. |
void |
setSelected(boolean sel)
Sets whether the sheet is selected |
void |
setSelection(SelectionRecord selection)
|
void |
setTopRow(short topRow)
|
void |
setUncalced(boolean uncalced)
|
void |
shiftBreaks(PageBreakRecord breaks,
short start,
short stop,
int count)
Shifts all the page breaks in the range "count" number of rows/columns |
void |
shiftColumnBreaks(short startingCol,
short endingCol,
short count)
Shifts the vertical page breaks for the indicated count |
void |
shiftRowBreaks(int startingRow,
int endingRow,
int count)
Shifts the horizontal page breaks for the indicated count |
void |
unprotectSheet(boolean sheet,
boolean objects,
boolean scenarios)
unprotect objects in the sheet (will not protect them, but any set to false are unprotected. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public static final short LeftMargin
public static final short RightMargin
public static final short TopMargin
public static final short BottomMargin
protected java.util.ArrayList records
protected int dimsloc
protected DimensionsRecord dims
protected DefaultColWidthRecord defaultcolwidth
protected DefaultRowHeightRecord defaultrowheight
protected GridsetRecord gridset
protected PrintSetupRecord printSetup
protected HeaderRecord header
protected FooterRecord footer
protected PrintGridlinesRecord printGridlines
protected WindowTwoRecord windowTwo
protected MergeCellsRecord merged
protected Margin[] margins
protected java.util.List mergedRecords
protected int numMergedRegions
protected SelectionRecord selection
protected ColumnInfoRecordsAggregate columns
protected ValueRecordsAggregate cells
protected RowRecordsAggregate rows
protected int eofLoc
protected ProtectRecord protect
protected PageBreakRecord rowBreaks
protected PageBreakRecord colBreaks
protected ObjectProtectRecord objprotect
protected ScenarioProtectRecord scenprotect
protected PasswordRecord password
protected java.util.List condFormatting
protected boolean _isUncalced
public static final byte PANE_LOWER_RIGHT
public static final byte PANE_UPPER_RIGHT
public static final byte PANE_LOWER_LEFT
public static final byte PANE_UPPER_LEFT
| Constructor Detail |
|---|
public Sheet()
createSheet(List,int,int)| Method Detail |
|---|
public static Sheet createSheet(java.util.List recs,
int sheetnum,
int offset)
recs - array containing those records in the sheet in sequence (normally obtained from RecordFactory)sheetnum - integer specifying the sheet's number (0,1 or 2 in this release)offset - of the sheet's BOF record
Workbook,
Recordpublic Sheet cloneSheet()
public static Sheet createSheet(java.util.List records,
int sheetnum)
records - array containing those records in the sheet in sequence (normally obtained from RecordFactory)sheetnum - integer specifying the sheet's number (0,1 or 2 in this release)
public static Sheet createSheet()
public int addMergedRegion(int rowFrom,
short colFrom,
int rowTo,
short colTo)
public void removeMergedRegion(int index)
public MergeCellsRecord.MergedRegion getMergedRegionAt(int index)
public int getNumMergedRegions()
public int addConditionalFormatting(CFRecordsAggregate cfAggregate)
public void removeConditionalFormatting(int index)
public CFRecordsAggregate getCFRecordsAggregateAt(int index)
public int getNumConditionalFormattings()
public int getNumRecords()
Record
public void setDimensions(int firstrow,
short firstcol,
int lastrow,
short lastcol)
DimensionsRecordpublic void setLoc(int loc)
loc - the record number to start atpublic int getLoc()
public void setPreOffset(int offset)
offset - the offset of the sheet's BOF within the file.public int getPreOffset()
public int serialize(int offset,
byte[] data)
offset - to begin write atdata - array containing the binary representation of the records in this sheetpublic RowRecord createRow(int row)
row - number
RowRecord
public LabelSSTRecord createLabelSST(int row,
short col,
int index)
row - the row the LabelSST is a member ofcol - the column the LabelSST definesindex - the index of the string within the SST (use workbook addSSTString method)
SSTRecord
public NumberRecord createNumber(int row,
short col,
double value)
row - the row the NumberRecord is a member ofcol - the column the NumberRecord definesvalue - for the number record
public BlankRecord createBlank(int row,
short col)
row - - the row the BlankRecord is a member ofcol - - the column the BlankRecord is a member of
public FormulaRecord createFormula(int row,
short col,
java.lang.String formula)
row - - the row for the formula recordcol - - the column of the formula recordformula - - a String representing the formula. To be parsed to PTGs
public void addValueRecord(int row,
CellValueRecordInterface col)
This method is "loc" sensitive. Meaning you need to set LOC to where you want it to start searching. If you don't know do this: setLoc(getDimsLoc). When adding several rows you can just start at the last one by leaving loc at what this sets it to.
row - the row to add the cell value tocol - the cell value record itself.
public void removeValueRecord(int row,
CellValueRecordInterface col)
row - - the row of the value record you wish to removecol - - a record supporting the CellValueRecordInterface.CellValueRecordInterfacepublic void replaceValueRecord(CellValueRecordInterface newval)
newval - - a record supporting the CellValueRecordInterface. this will replace
the cell value with the same row and column. If there isn't one, one will
be added.public void addRow(RowRecord row)
This method is "loc" sensitive. Meaning you need to set LOC to where you want it to start searching. If you don't know do this: setLoc(getDimsLoc). When adding several rows you can just start at the last one by leaving loc at what this sets it to.
row - the row record to be addedsetLoc(int)public void removeRow(RowRecord row)
row - the row record to removepublic CellValueRecordInterface getNextValueRecord()
This method is "loc" sensitive. Meaning you need to set LOC to where you want it to start searching. If you don't know do this: setLoc(getDimsLoc). When adding several rows you can just start at the last one by leaving loc at what this sets it to. For this method, set loc to dimsloc to start with, subsequent calls will return values in (physical) sequence or NULL when you get to the end.
setLoc(int)public RowRecord getNextRow()
This method is "loc" sensitive. Meaning you need to set LOC to where you want it to start searching. If you don't know do this: setLoc(getDimsLoc). When adding several rows you can just start at the last one by leaving loc at what this sets it to. For this method, set loc to dimsloc to start with. subsequent calls will return rows in (physical) sequence or NULL when you get to the end.
setLoc(int)public RowRecord getRow(int rownum)
This method is "loc" sensitive. Meaning you need to set LOC to where you want it to start searching. If you don't know do this: setLoc(getDimsLoc). When adding several rows you can just start at the last one by leaving loc at what this sets it to. For this method, set loc to dimsloc to start with. subsequent calls will return rows in (physical) sequence or NULL when you get to the end.
rownum - which row to return (careful with LOC)
setLoc(int)protected Record createBOF()
BOFRecord,
Recordprotected Record createIndex()
IndexRecord,
Recordprotected Record createCalcMode()
CalcModeRecord,
Recordprotected Record createCalcCount()
CalcCountRecord,
Recordprotected Record createRefMode()
RefModeRecord,
Recordprotected Record createIteration()
IterationRecord,
Recordprotected Record createDelta()
DeltaRecord,
Recordprotected Record createSaveRecalc()
SaveRecalcRecord,
Recordprotected Record createPrintHeaders()
PrintHeadersRecord,
Recordprotected Record createPrintGridlines()
PrintGridlinesRecord,
Recordprotected Record createGridset()
GridsetRecord,