Class DConRefRecord

  • All Implemented Interfaces:
    Duplicatable, GenericRecord

    public class DConRefRecord
    extends StandardRecord
    DConRef records specify a range in a workbook (internal or external) that serves as a data source for pivot tables or data consolidation. Represents a DConRef Structure [MS-XLS s. 2.4.86], and the contained DConFile structure [MS-XLS s. 2.5.69]. This in turn contains a XLUnicodeStringNoCch [MS-XLS s. 2.5.296].
             _______________________________
            |          DConRef              |
    (bytes) +-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+
            |    ref    |cch|  stFile   | un|
            +-+-+-+-+-+-+-+-+-+-+...+-+-+-+-+
                                  |
                         _________|_____________________
                        |DConFile / XLUnicodeStringNoCch|
                        +-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+
                 (bits) |h|   reserved  |      rgb      |
                        +-+-+-+-+-+-+-+-+-+-+-+...+-+-+-+
     
    Where
    • DConFile.h = 0x00 if the characters inrgb are single byte, and DConFile.h = 0x01 if they are double byte.

      If they are double byte, then

      • If it exists, the length of DConRef.un = 2. Otherwise it is 1.
      • The length of DConFile.rgb = (2 * DConRef.cch). Otherwise it is equal to DConRef.cch.
    • DConRef.rgb starts with 0x01 if it is an external reference, and with 0x02 if it is a self-reference.
    At the moment this class is read-only.
    • Field Detail

    • Constructor Detail

      • DConRefRecord

        public DConRefRecord​(byte[] data)
        Read constructor.
        Parameters:
        data - byte array containing a DConRef Record, including the header.
      • DConRefRecord

        public DConRefRecord​(RecordInputStream inStream)
        Read Constructor.
        Parameters:
        inStream - RecordInputStream containing a DConRefRecord structure.
    • Method Detail

      • serialize

        protected void serialize​(LittleEndianOutput out)
        Description copied from class: StandardRecord
        Write the data content of this BIFF record. The 'ushort sid' and 'ushort size' header fields have already been written by the superclass.

        The number of bytes written must equal the record size reported by RecordBase.getRecordSize()} minus four ( record header consisting of a 'ushort sid' and 'ushort reclength' has already been written by their superclass).

        Specified by:
        serialize in class StandardRecord
        Parameters:
        out - the output object
      • 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
        Returns:
        he id for this record
      • getFirstColumn

        public int getFirstColumn()
        Returns:
        The first column of the range.
      • getFirstRow

        public int getFirstRow()
        Returns:
        The first row of the range.
      • getLastColumn

        public int getLastColumn()
        Returns:
        The last column of the range.
      • getLastRow

        public int getLastRow()
        Returns:
        The last row of the range.
      • getPath

        public byte[] getPath()
        Returns:
        raw path byte array.
      • getReadablePath

        public String getReadablePath()
        Returns:
        the link's path, with the special characters stripped/replaced. May be null. See MS-XLS 2.5.277 (VirtualPath)
      • isExternalRef

        public boolean isExternalRef()
        Checks if the data source in this reference record is external to this sheet or internal.
        Returns:
        true iff this is an external reference.