Package loci.poi.hssf.record
Class SharedFormulaRecord
- java.lang.Object
-
- loci.poi.hssf.record.Record
-
- loci.poi.hssf.record.SharedFormulaRecord
-
public class SharedFormulaRecord extends Record
Title: SharedFormulaRecord Description: Primarily used as an excel optimization so that multiple similar formulas are not written out too many times. We should recognize this record and serialize as is since this is used when reading templates.Note: the documentation says that the SID is BC where biffviewer reports 4BC. The hex dump shows that the two byte sid representation to be 'BC 04' that is consistent with the other high byte record types.
- Author:
- Danny Mui at apache dot org
-
-
Field Summary
Fields Modifier and Type Field Description static short
sid
-
Constructor Summary
Constructors Constructor Description SharedFormulaRecord()
SharedFormulaRecord(RecordInputStream in)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description Object
clone()
void
convertSharedFormulaRecord(FormulaRecord formula)
Creates a non shared formula from the shared formula counter partprotected void
fillFields(RecordInputStream in)
Shared formulas are to treated like unknown records, and as a result dshort
getExpressionLength()
short
getFirstColumn()
int
getFirstRow()
short
getLastColumn()
int
getLastRow()
int
getRecordSize()
gives the current serialized size of the record.short
getSid()
return the non static version of the id for this record.boolean
isFormulaInShared(FormulaRecord formula)
boolean
isInValueSection()
Mirroring formula records so it is registered in the ValueRecordsAggregateboolean
isValue()
Register it in the ValueRecordsAggregate so it can go into the FormulaRecordAggregateint
serialize(int offset, byte[] data)
spit the record out AS IS.String
toString()
print a sort of string representation ([SHARED FORMULA RECORD] id = x [/SHARED FORMULA RECORD])protected void
validateSid(short id)
called by constructor, should throw runtime exception in the event of a record passed with a differing ID.
-
-
-
Field Detail
-
sid
public static final short sid
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
SharedFormulaRecord
public SharedFormulaRecord()
-
SharedFormulaRecord
public SharedFormulaRecord(RecordInputStream in)
- Parameters:
in
- the RecordInputstream to read the record from
-
-
Method Detail
-
validateSid
protected void validateSid(short id)
Description copied from class:Record
called by constructor, should throw runtime exception in the event of a record passed with a differing ID.- Specified by:
validateSid
in classRecord
- Parameters:
id
- alleged id for this record
-
getFirstRow
public int getFirstRow()
-
getLastRow
public int getLastRow()
-
getFirstColumn
public short getFirstColumn()
-
getLastColumn
public short getLastColumn()
-
getExpressionLength
public short getExpressionLength()
-
serialize
public int serialize(int offset, byte[] data)
spit the record out AS IS. no interperatation or identification
-
getRecordSize
public int getRecordSize()
Description copied from class:Record
gives the current serialized size of the record. Should include the sid and reclength (4 bytes).- Overrides:
getRecordSize
in classRecord
-
toString
public String toString()
print a sort of string representation ([SHARED FORMULA RECORD] id = x [/SHARED FORMULA RECORD])
-
getSid
public short getSid()
Description copied from class:Record
return the non static version of the id for this record.
-
fillFields
protected void fillFields(RecordInputStream in)
Shared formulas are to treated like unknown records, and as a result d- Specified by:
fillFields
in classRecord
- Parameters:
in
- the RecordInputstream to read the record from
-
isFormulaInShared
public boolean isFormulaInShared(FormulaRecord formula)
-
convertSharedFormulaRecord
public void convertSharedFormulaRecord(FormulaRecord formula)
Creates a non shared formula from the shared formula counter part
-
isInValueSection
public boolean isInValueSection()
Mirroring formula records so it is registered in the ValueRecordsAggregate- Overrides:
isInValueSection
in classRecord
-
isValue
public boolean isValue()
Register it in the ValueRecordsAggregate so it can go into the FormulaRecordAggregate
-
-