|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.apache.poi.hssf.model.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
Field Summary | |
protected ValueRecordsAggregate |
cells
|
protected boolean |
containsLabels
|
protected DefaultColWidthRecord |
defaultcolwidth
|
protected DefaultRowHeightRecord |
defaultrowheight
|
protected DimensionsRecord |
dims
|
protected int |
dimsloc
|
protected GridsetRecord |
gridset
|
protected MergeCellsRecord |
merged
|
protected int |
mergedloc
|
protected java.util.ArrayList |
records
|
protected RowRecordsAggregate |
rows
|
Constructor Summary | |
Sheet()
Creates new Sheet with no intialization --useless at this point |
Method Summary | |
void |
addDBCellRecords()
Not currently used method to calculate and add dbcell records |
int |
addMergedRegion(short rowFrom,
short colFrom,
short rowTo,
short colTo)
|
void |
addRow(RowRecord row)
Adds a row record to the sheet |
void |
addValueRecord(short row,
CellValueRecordInterface col)
Adds a value record to the sheet's contained binary records (i.e. |
void |
checkDimsLoc(Record rec,
int recloc)
in the event the record is a dimensions record, resets both the loc index and dimsloc index |
void |
convertLabelRecords(Workbook wb)
This is basically a kludge to deal with the now obsolete Label records. |
BlankRecord |
createBlank(short 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(short row,
short col,
java.lang.String formula)
Attempts to parse the formula into PTGs and create a formula record DOES NOT WORK YET |
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(short 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(short row,
short col,
double value)
Create a NUMBER Record (does not add it to the records contained in this sheet) |
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 |
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 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. |
protected Record |
createVCenter()
creates the VCenter Record and sets it to false (don't horizontally center) |
protected Record |
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. |
short |
getColumnWidth(short column)
get the width of a given column in units of 1/20th of a point width (twips?) |
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) |
GridsetRecord |
getGridsetRecord()
Gets the gridset record for this sheet. |
int |
getLoc()
Returns the location pointer to the first record to look for when adding rows/values |
MergeCellsRecord.MergedRegion |
getMergedRegionAt(int index)
|
RowRecord |
getNextRow()
get the NEXT RowRecord (from LOC). |
CellValueRecordInterface |
getNextValueRecord()
get the NEXT value record (from LOC). |
int |
getNumMergedRegions()
|
int |
getNumRecords()
Returns the number of low level binary records in this sheet. |
int |
getPreOffset()
get the preoffset when using DBCELL records (currently unused) - this is the position of this sheet within the whole file. |
java.util.List |
getRecords()
|
RowRecord |
getRow(short rownum)
get the NEXT (from LOC) RowRecord where rownumber matches the given rownum. |
int |
getSize()
|
boolean |
isGridsPrinted()
get whether gridlines are printed. |
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 |
removeValueRecord(short row,
CellValueRecordInterface col)
remove a value record from the records array. |
void |
replaceValueRecord(CellValueRecordInterface newval)
replace a value record from the records array. |
byte[] |
serialize()
Serializes all records in the sheet into one big byte array. |
int |
serialize(int offset,
byte[] data)
Serializes all records in the sheet into one big byte array. |
void |
setColumnWidth(short column,
short width)
set the width for a given column in 1/20th 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(short firstrow,
short firstcol,
short lastrow,
short lastcol)
Per an earlier reported bug in working with Andy Khan's excel read library. |
void |
setGridsPrinted(boolean value)
set whether gridlines printed or not. |
void |
setLoc(int loc)
set the locator for where we should look for the next value record. |
void |
setPreOffset(int offset)
Set the preoffset when using DBCELL records (currently unused) - this is the position of this sheet within the whole file. |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected java.util.ArrayList records
protected boolean containsLabels
protected int dimsloc
protected DimensionsRecord dims
protected DefaultColWidthRecord defaultcolwidth
protected DefaultRowHeightRecord defaultrowheight
protected GridsetRecord gridset
protected MergeCellsRecord merged
protected int mergedloc
protected ValueRecordsAggregate cells
protected RowRecordsAggregate rows
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 recordWorkbook
,
Record
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(short rowFrom, short colFrom, short rowTo, short colTo)
public void removeMergedRegion(int index)
public MergeCellsRecord.MergedRegion getMergedRegionAt(int index)
public int getNumMergedRegions()
public void convertLabelRecords(Workbook wb)
wb
- sheet's matching low level Workbook structure containing the SSTRecord.LabelRecord
,
LabelSSTRecord
,
SSTRecord
public int getNumRecords()
Record
public void setDimensions(short firstrow, short firstcol, short lastrow, short lastcol)
DimensionsRecord
public 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 byte[] serialize()
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
- numberRowRecord
public LabelSSTRecord createLabelSST(short 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(short row, short col, double value)
row
- the row the NumberRecord is a member ofcol
- the column the NumberRecord definesvalue
- for the number recordpublic BlankRecord createBlank(short row, short col)
row
- - the row the BlankRecord is a member ofcol
- - the column the BlankRecord is a member ofpublic FormulaRecord createFormula(short 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 PTGspublic void addValueRecord(short 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(short row, CellValueRecordInterface col)
row
- - the row of the value record you wish to removecol
- - a record supporting the CellValueRecordInterface.CellValueRecordInterface
public 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(short 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)
public void addDBCellRecords()
protected Record createBOF()
BOFRecord
,
Record
protected Record createIndex()
IndexRecord
,
Record
protected Record createCalcMode()
CalcModeRecord
,
Record
protected Record createCalcCount()
CalcCountRecord
,
Record
protected Record createRefMode()
RefModeRecord
,
Record
protected Record createIteration()
IterationRecord
,
Record
protected Record createDelta()
DeltaRecord
,
Record
protected Record createSaveRecalc()
SaveRecalcRecord
,
Record
protected Record createPrintHeaders()
PrintHeadersRecord
,
Record
protected Record createPrintGridlines()
PrintGridlinesRecord
,
Record
protected Record createGridset()
GridsetRecord
,
Record
protected Record createGuts()
GutsRecord
,
Record
protected Record createDefaultRowHeight()
DefaultRowHeightRecord
,
Record
protected Record createWSBool()
WSBoolRecord
,
Record
protected Record createHeader()
HeaderRecord
,
Record
protected Record createFooter()
FooterRecord
,
Record
protected Record createHCenter()
HCenterRecord
,
Record
protected Record createVCenter()
VCenterRecord
,
Record
protected Record createPrintSetup()
PrintSetupRecord
,
Record
protected Record createDefaultColWidth()
DefaultColWidthRecord
,
Record
protected Record createColInfo()
ColumnInfoRecord
public short getDefaultColumnWidth()
public boolean isGridsPrinted()
public void setGridsPrinted(boolean value)
value
- True if gridlines printed.public void setDefaultColumnWidth(short dcw)
dcw
- default column widthpublic void setDefaultRowHeight(short dch)
public short getDefaultRowHeight()
public short getColumnWidth(short column)
column
- indexDefaultColWidthRecord
,
ColumnInfoRecord
,
setColumnWidth(short,short)
public void setColumnWidth(short column, short width)
column
- - the column numberwidth
- (in units of 1/20th of a character width)protected Record createDimensions()
DimensionsRecord
,
Record
protected Record createWindowTwo()
options = 0x6b6
toprow = 0
leftcol = 0
headercolor = 0x40
pagebreakzoom = 0x0
normalzoom = 0x0
WindowTwoRecord
,
Record
protected Record createSelection()
SelectionRecord
,
Record
protected Record createMergedCells()
protected Record createEOF()
EOFRecord
,
Record
public int getDimsLoc()
public void checkDimsLoc(Record rec, int recloc)
public int getSize()
public java.util.List getRecords()
public GridsetRecord getGridsetRecord()
public Record findFirstRecordBySid(short sid)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |