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 Details

  • Constructor Details

    • SharedFormulaRecord

      public SharedFormulaRecord()
    • SharedFormulaRecord

      public SharedFormulaRecord(RecordInputStream in)
      Parameters:
      in - the RecordInputstream to read the record from
  • Method Details

    • 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 class Record
      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
      Specified by:
      serialize in class Record
      Parameters:
      offset - to begin writing at
      data - byte array containing instance data
      Returns:
      number of bytes written
    • 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 class Record
    • toString

      public String toString()
      print a sort of string representation ([SHARED FORMULA RECORD] id = x [/SHARED FORMULA RECORD])
      Overrides:
      toString in class Record
    • getSid

      public short getSid()
      Description copied from class: Record
      return the non static version of the id for this record.
      Specified by:
      getSid in class Record
    • fillFields

      protected void fillFields(RecordInputStream in)
      Shared formulas are to treated like unknown records, and as a result d
      Specified by:
      fillFields in class Record
      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 class Record
    • isValue

      public boolean isValue()
      Register it in the ValueRecordsAggregate so it can go into the FormulaRecordAggregate
      Overrides:
      isValue in class Record
    • clone

      public Object clone()
      Overrides:
      clone in class Record