Class Sheet

  • All Implemented Interfaces:
    Model

    public class Sheet
    extends Object
    implements Model
    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.

    Version:
    1.0-pre
    Author:
    Andrew C. Oliver (acoliver at apache dot org), Glen Stampoultzis (glens at apache.org), Shawn Laubach (slaubach at apache dot org) Gridlines, Headers, Footers, PrintSetup, and Setting Default Column Styles, Jason Height (jheight at chariot dot net dot au) Clone support. DBCell & Index Record writing support, Brian Sanders (kestrel at burdell dot org) Active Cell support, Jean-Pierre Paris (jean-pierre.paris at m4x dot org) (Just a little)
    See Also:
    Workbook, HSSFSheet
    • Constructor Detail

    • Method Detail

      • createSheet

        public static Sheet createSheet​(List recs,
                                        int sheetnum,
                                        int offset)
        read support (offset used as starting point for search) for low level API. Pass in an array of Record objects, the sheet number (0 based) and a record offset (should be the location of the sheets BOF record). A Sheet object is constructed and passed back with all of its initialization set to the passed in records and references to those records held. This function is normally called via Workbook.
        Parameters:
        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
        Returns:
        Sheet object with all values set to those read from the file
        See Also:
        Workbook, Record
      • cloneSheet

        public Sheet cloneSheet()
        Clones the low level records of this sheet and returns the new sheet instance. This method is implemented by adding methods for deep cloning to all records that can be added to a sheet. The Record object does not implement cloneable. When adding a new record, implement a public clone method if and only if the record belongs to a sheet.
      • createSheet

        public static Sheet createSheet​(List records,
                                        int sheetnum)
        read support (offset = 0) Same as createSheet(Record[] recs, int, int) only the record offset is assumed to be 0.
        Parameters:
        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)
        Returns:
        Sheet object
      • createSheet

        public static Sheet createSheet()
        Creates a sheet with all the usual records minus values and the "index" record (not required). Sets the location pointer to where the first value records should go. Use this to create a sheet from "scratch".
        Returns:
        Sheet object with all values set to defaults
      • addMergedRegion

        public int addMergedRegion​(int rowFrom,
                                   short colFrom,
                                   int rowTo,
                                   short colTo)
      • removeMergedRegion

        public void removeMergedRegion​(int index)
      • getNumMergedRegions

        public int getNumMergedRegions()
      • getNumRecords

        public int getNumRecords()
        Returns the number of low level binary records in this sheet. This adjusts things for the so called AgregateRecords.
        See Also:
        Record
      • setDimensions

        public void setDimensions​(int firstrow,
                                  short firstcol,
                                  int lastrow,
                                  short lastcol)
        Per an earlier reported bug in working with Andy Khan's excel read library. This sets the values in the sheet's DimensionsRecord object to be correct. Excel doesn't really care, but we want to play nice with other libraries.
        See Also:
        DimensionsRecord
      • setLoc

        public void setLoc​(int loc)
        set the locator for where we should look for the next value record. The algorythm will actually start here and find the correct location so you can set this to 0 and watch performance go down the tubes but it will work. After a value is set this is automatically advanced. Its also set by the create method. So you probably shouldn't mess with this unless you have a compelling reason why or the help for the method you're calling says so. Check the other methods for whether they care about the loc pointer. Many of the "modify" and "remove" methods re-initialize this to "dimsloc" which is the location of the Dimensions Record and presumably the start of the value section (at or around 19 dec).
        Parameters:
        loc - the record number to start at
      • getLoc

        public int getLoc()
        Returns the location pointer to the first record to look for when adding rows/values
      • setPreOffset

        public void setPreOffset​(int offset)
        Set the preoffset when using DBCELL records (currently unused) - this is the position of this sheet within the whole file.
        Parameters:
        offset - the offset of the sheet's BOF within the file.
      • getPreOffset

        public int getPreOffset()
        get the preoffset when using DBCELL records (currently unused) - this is the position of this sheet within the whole file.
        Returns:
        offset the offset of the sheet's BOF within the file.
      • serialize

        public int serialize​(int offset,
                             byte[] data)
        Serializes all records in the sheet into one big byte array. Use this to write the sheet out.
        Parameters:
        offset - to begin write at
        data - array containing the binary representation of the records in this sheet
      • createRow

        public RowRecord createRow​(int row)
        Create a row record. (does not add it to the records contained in this sheet)
        Parameters:
        row - number
        Returns:
        RowRecord created for the passed in row number
        See Also:
        RowRecord
      • createLabelSST

        public LabelSSTRecord createLabelSST​(int row,
                                             short col,
                                             int index)
        Create a LABELSST Record (does not add it to the records contained in this sheet)
        Parameters:
        row - the row the LabelSST is a member of
        col - the column the LabelSST defines
        index - the index of the string within the SST (use workbook addSSTString method)
        Returns:
        LabelSSTRecord newly created containing your SST Index, row,col.
        See Also:
        SSTRecord
      • createNumber

        public NumberRecord createNumber​(int row,
                                         short col,
                                         double value)
        Create a NUMBER Record (does not add it to the records contained in this sheet)
        Parameters:
        row - the row the NumberRecord is a member of
        col - the column the NumberRecord defines
        value - for the number record
        Returns:
        NumberRecord for that row, col containing that value as added to the sheet
      • createBlank

        public BlankRecord createBlank​(int row,
                                       short col)
        create a BLANK record (does not add it to the records contained in this sheet)
        Parameters:
        row - - the row the BlankRecord is a member of
        col - - the column the BlankRecord is a member of
      • createFormula

        public FormulaRecord createFormula​(int row,
                                           short col,
                                           String formula)
        Attempts to parse the formula into PTGs and create a formula record DOES NOT WORK YET
        Parameters:
        row - - the row for the formula record
        col - - the column of the formula record
        formula - - a String representing the formula. To be parsed to PTGs
        Returns:
        bogus/useless formula record
      • addValueRecord

        public void addValueRecord​(int row,
                                   CellValueRecordInterface col)
        Adds a value record to the sheet's contained binary records (i.e. LabelSSTRecord or NumberRecord).

        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.

        Parameters:
        row - the row to add the cell value to
        col - the cell value record itself.
      • removeValueRecord

        public void removeValueRecord​(int row,
                                      CellValueRecordInterface col)
        remove a value record from the records array. This method is not loc sensitive, it resets loc to = dimsloc so no worries.
        Parameters:
        row - - the row of the value record you wish to remove
        col - - a record supporting the CellValueRecordInterface.
        See Also:
        CellValueRecordInterface
      • replaceValueRecord

        public void replaceValueRecord​(CellValueRecordInterface newval)
        replace a value record from the records array. This method is not loc sensitive, it resets loc to = dimsloc so no worries.
        Parameters:
        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.
      • addRow

        public void addRow​(RowRecord row)
        Adds a row record to the sheet

        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.

        Parameters:
        row - the row record to be added
        See Also:
        setLoc(int)
      • removeRow

        public void removeRow​(RowRecord row)
        Removes a row record This method is not loc sensitive, it resets loc to = dimsloc so no worries.
        Parameters:
        row - the row record to remove
      • getNextValueRecord

        public CellValueRecordInterface getNextValueRecord()
        get the NEXT value record (from LOC). The first record that is a value record (starting at LOC) will be returned.

        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.

        Returns:
        CellValueRecordInterface representing the next value record or NULL if there are no more
        See Also:
        setLoc(int)
      • getNextRow

        public RowRecord getNextRow()
        get the NEXT RowRecord (from LOC). The first record that is a Row record (starting at LOC) will be returned.

        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.

        Returns:
        RowRecord representing the next row record or NULL if there are no more
        See Also:
        setLoc(int)
      • getRow

        public RowRecord getRow​(int rownum)
        get the NEXT (from LOC) RowRecord where rownumber matches the given rownum. The first record that is a Row record (starting at LOC) that has the same rownum as the given rownum will be returned.

        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.

        Parameters:
        rownum - which row to return (careful with LOC)
        Returns:
        RowRecord representing the next row record or NULL if there are no more
        See Also:
        setLoc(int)
      • createBOF

        protected Record createBOF()
        creates the BOF record
        Returns:
        record containing a BOFRecord
        See Also:
        BOFRecord, Record
      • createIndex

        protected Record createIndex()
        creates the Index record - not currently used
        Returns:
        record containing a IndexRecord
        See Also:
        IndexRecord, Record
      • createCalcMode

        protected Record createCalcMode()
        creates the CalcMode record and sets it to 1 (automatic formula caculation)
        Returns:
        record containing a CalcModeRecord
        See Also:
        CalcModeRecord, Record
      • createCalcCount

        protected Record createCalcCount()
        creates the CalcCount record and sets it to 0x64 (default number of iterations)
        Returns:
        record containing a CalcCountRecord
        See Also:
        CalcCountRecord, Record
      • createRefMode

        protected Record createRefMode()
        creates the RefMode record and sets it to A1 Mode (default reference mode)
        Returns:
        record containing a RefModeRecord
        See Also:
        RefModeRecord, Record
      • createIteration

        protected Record createIteration()
        creates the Iteration record and sets it to false (don't iteratively calculate formulas)
        Returns:
        record containing a IterationRecord
        See Also:
        IterationRecord, Record
      • createDelta

        protected Record createDelta()
        creates the Delta record and sets it to 0.0010 (default accuracy)
        Returns:
        record containing a DeltaRecord
        See Also:
        DeltaRecord, Record
      • createSaveRecalc

        protected Record createSaveRecalc()
        creates the SaveRecalc record and sets it to true (recalculate before saving)
        Returns:
        record containing a SaveRecalcRecord
        See Also:
        SaveRecalcRecord, Record
      • createPrintHeaders

        protected Record createPrintHeaders()
        creates the PrintHeaders record and sets it to false (we don't create headers yet so why print them)
        Returns:
        record containing a PrintHeadersRecord
        See Also:
        PrintHeadersRecord, Record
      • createPrintGridlines

        protected Record createPrintGridlines()
        creates the PrintGridlines record and sets it to false (that makes for ugly sheets). As far as I can tell this does the same thing as the GridsetRecord
        Returns:
        record containing a PrintGridlinesRecord
        See Also:
        PrintGridlinesRecord, Record
      • createGridset

        protected Record createGridset()
        creates the Gridset record and sets it to true (user has mucked with the gridlines)
        Returns:
        record containing a GridsetRecord
        See Also:
        GridsetRecord, Record
      • createGuts

        protected Record createGuts()
        creates the Guts record and sets leftrow/topcol guttter and rowlevelmax/collevelmax to 0
        Returns:
        record containing a GutsRecordRecord
        See Also:
        GutsRecord, Record
      • createDefaultRowHeight

        protected Record createDefaultRowHeight()
        creates the DefaultRowHeight Record and sets its options to 0 and rowheight to 0xff
        Returns:
        record containing a DefaultRowHeightRecord
        See Also:
        DefaultRowHeightRecord, Record
      • createWSBool

        protected Record createWSBool()
        creates the WSBoolRecord and sets its values to defaults
        Returns:
        record containing a WSBoolRecord
        See Also:
        WSBoolRecord, Record
      • createHeader

        protected Record createHeader()
        creates the Header Record and sets it to nothing/0 length
        Returns:
        record containing a HeaderRecord
        See Also:
        HeaderRecord, Record
      • createFooter

        protected Record createFooter()
        creates the Footer Record and sets it to nothing/0 length
        Returns:
        record containing a FooterRecord
        See Also:
        FooterRecord, Record
      • createHCenter

        protected Record createHCenter()
        creates the HCenter Record and sets it to false (don't horizontally center)
        Returns:
        record containing a HCenterRecord
        See Also:
        HCenterRecord, Record
      • createVCenter

        protected Record createVCenter()
        creates the VCenter Record and sets it to false (don't horizontally center)
        Returns:
        record containing a VCenterRecord
        See Also:
        VCenterRecord, Record
      • createPrintSetup

        protected Record createPrintSetup()
        creates the PrintSetup Record and sets it to defaults and marks it invalid
        Returns:
        record containing a PrintSetupRecord
        See Also:
        PrintSetupRecord, Record
      • createDefaultColWidth

        protected Record createDefaultColWidth()
        creates the DefaultColWidth Record and sets it to 8
        Returns:
        record containing a DefaultColWidthRecord
        See Also:
        DefaultColWidthRecord, Record
      • createColInfo

        protected Record createColInfo()
        creates the ColumnInfo Record and sets it to a default column/width
        Returns:
        record containing a ColumnInfoRecord
        See Also:
        ColumnInfoRecord
      • getDefaultColumnWidth

        public short getDefaultColumnWidth()
        get the default column width for the sheet (if the columns do not define their own width)
        Returns:
        default column width
      • isGridsPrinted

        public boolean isGridsPrinted()
        get whether gridlines are printed.
        Returns:
        true if printed
      • setGridsPrinted

        public void setGridsPrinted​(boolean value)
        set whether gridlines printed or not.
        Parameters:
        value - True if gridlines printed.
      • setDefaultColumnWidth

        public void setDefaultColumnWidth​(short dcw)
        set the default column width for the sheet (if the columns do not define their own width)
        Parameters:
        dcw - default column width
      • setDefaultRowHeight

        public void setDefaultRowHeight​(short dch)
        set the default row height for the sheet (if the rows do not define their own height)
      • getDefaultRowHeight

        public short getDefaultRowHeight()
        get the default row height for the sheet (if the rows do not define their own height)
        Returns:
        default row height
      • getXFIndexForColAt

        public short getXFIndexForColAt​(short column)
        get the index to the ExtendedFormatRecord "associated" with the column at specified 0-based index. (In this case, an ExtendedFormatRecord index is actually associated with a ColumnInfoRecord which spans 1 or more columns)
        Returns the index to the default ExtendedFormatRecord (0xF) if no ColumnInfoRecord exists that includes the column index specified.
        Parameters:
        column -
        Returns:
        index of ExtendedFormatRecord associated with ColumnInfoRecord that includes the column index or the index of the default ExtendedFormatRecord (0xF)
      • setColumnWidth

        public void setColumnWidth​(short column,
                                   short width)
        set the width for a given column in 1/20th of a character width units
        Parameters:
        column - - the column number
        width - (in units of 1/20th of a character width)
      • setColumnHidden

        public void setColumnHidden​(short column,
                                    boolean hidden)
        Get the hidden property for a given column.
        Parameters:
        column - - the column number
        hidden - - whether the column is hidden or not
      • groupColumnRange

        public void groupColumnRange​(short fromColumn,
                                     short toColumn,
                                     boolean indent)
        Creates an outline group for the specified columns.
        Parameters:
        fromColumn - group from this column (inclusive)
        toColumn - group to this column (inclusive)
        indent - if true the group will be indented by one level, if false indenting will be removed by one level.
      • createDimensions

        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)
        Returns:
        record containing a DimensionsRecord
        See Also:
        DimensionsRecord, Record
      • createWindowTwo

        protected WindowTwoRecord createWindowTwo()
        creates the WindowTwo Record and sets it to:

        options = 0x6b6

        toprow = 0

        leftcol = 0

        headercolor = 0x40

        pagebreakzoom = 0x0

        normalzoom = 0x0

        Returns:
        record containing a WindowTwoRecord
        See Also:
        WindowTwoRecord, Record
      • createSelection

        protected Record createSelection()
        Creates the Selection record and sets it to nothing selected
        Returns:
        record containing a SelectionRecord
        See Also:
        SelectionRecord, Record
      • getTopRow

        public short getTopRow()
      • setTopRow

        public void setTopRow​(short topRow)
      • setLeftCol

        public void setLeftCol​(short leftCol)
        Sets the left column to show in desktop window pane.
        Parameters:
        leftCol - the left column to show in desktop window pane
      • getLeftCol

        public short getLeftCol()
      • getActiveCellRow

        public int getActiveCellRow()
        Returns the active row
        Returns:
        row the active row index
        See Also:
        SelectionRecord
      • setActiveCellRow

        public void setActiveCellRow​(int row)
        Sets the active row
        Parameters:
        row - the row index
        See Also:
        SelectionRecord
      • getActiveCellCol

        public short getActiveCellCol()
        Returns the active column
        Returns:
        row the active column index
        See Also:
        SelectionRecord
      • setActiveCellCol

        public void setActiveCellCol​(short col)
        Sets the active column
        Parameters:
        col - the column index
        See Also:
        SelectionRecord
      • createMergedCells

        protected Record createMergedCells()
      • createEOF

        protected Record createEOF()
        creates the EOF record
        Returns:
        record containing a EOFRecord
        See Also:
        EOFRecord, Record
      • getDimsLoc

        public int getDimsLoc()
        get the location of the DimensionsRecord (which is the last record before the value section)
        Returns:
        location in the array of records of the DimensionsRecord
      • checkDimsLoc

        public void checkDimsLoc​(Record rec,
                                 int recloc)
        in the event the record is a dimensions record, resets both the loc index and dimsloc index
      • getSize

        public int getSize()
      • getRecords

        public List getRecords()
      • getGridsetRecord

        public GridsetRecord getGridsetRecord()
        Gets the gridset record for this sheet.
      • findFirstRecordBySid

        public Record findFirstRecordBySid​(short sid)
        Returns the first occurance of a record matching a particular sid.
      • setSCLRecord

        public void setSCLRecord​(SCLRecord sclRecord)
        Sets the SCL record or creates it in the correct place if it does not already exist.
        Parameters:
        sclRecord - The record to set.
      • findFirstRecordLocBySid

        public int findFirstRecordLocBySid​(short sid)
        Finds the first occurance of a record matching a particular sid and returns it's position.
        Parameters:
        sid - the sid to search for
        Returns:
        the record position of the matching record or -1 if no match is made.
      • getHeader

        public HeaderRecord getHeader()
        Returns the HeaderRecord.
        Returns:
        HeaderRecord for the sheet.
      • setHeader

        public void setHeader​(HeaderRecord newHeader)
        Sets the HeaderRecord.
        Parameters:
        newHeader - The new HeaderRecord for the sheet.
      • getFooter

        public FooterRecord getFooter()
        Returns the FooterRecord.
        Returns:
        FooterRecord for the sheet.
      • setFooter

        public void setFooter​(FooterRecord newFooter)
        Sets the FooterRecord.
        Parameters:
        newFooter - The new FooterRecord for the sheet.
      • getPrintSetup

        public PrintSetupRecord getPrintSetup()
        Returns the PrintSetupRecord.
        Returns:
        PrintSetupRecord for the sheet.
      • setPrintSetup

        public void setPrintSetup​(PrintSetupRecord newPrintSetup)
        Sets the PrintSetupRecord.
        Parameters:
        newPrintSetup - The new PrintSetupRecord for the sheet.
      • getPrintGridlines

        public PrintGridlinesRecord getPrintGridlines()
        Returns the PrintGridlinesRecord.
        Returns:
        PrintGridlinesRecord for the sheet.
      • setPrintGridlines

        public void setPrintGridlines​(PrintGridlinesRecord newPrintGridlines)
        Sets the PrintGridlinesRecord.
        Parameters:
        newPrintGridlines - The new PrintGridlinesRecord for the sheet.
      • setSelected

        public void setSelected​(boolean sel)
        Sets whether the sheet is selected
        Parameters:
        sel - True to select the sheet, false otherwise.
      • getMargin

        public double getMargin​(short margin)
        Gets the size of the margin in inches.
        Parameters:
        margin - which margin to get
        Returns:
        the size of the margin
      • setMargin

        public void setMargin​(short margin,
                              double size)
        Sets the size of the margin in inches.
        Parameters:
        margin - which margin to get
        size - the size of the margin
      • getEofLoc

        public int getEofLoc()
      • createFreezePane

        public void createFreezePane​(int colSplit,
                                     int rowSplit,
                                     int topRow,
                                     int leftmostColumn)
        Creates a split (freezepane). Any existing freezepane or split pane is overwritten.
        Parameters:
        colSplit - Horizonatal position of split.
        rowSplit - Vertical position of split.
        topRow - Top row visible in bottom pane
        leftmostColumn - Left column visible in right pane.
      • createSplitPane

        public void createSplitPane​(int xSplitPos,
                                    int ySplitPos,
                                    int topRow,
                                    int leftmostColumn,
                                    int activePane)
        Creates a split pane. Any existing freezepane or split pane is overwritten.
        Parameters:
        xSplitPos - Horizonatal position of split (in 1/20th of a point).
        ySplitPos - Vertical position of split (in 1/20th of a point).
        topRow - Top row visible in bottom pane
        leftmostColumn - Left column visible in right pane.
        activePane - Active pane. One of: PANE_LOWER_RIGHT, PANE_UPPER_RIGHT, PANE_LOWER_LEFT, PANE_UPPER_LEFT
        See Also:
        PANE_LOWER_LEFT, PANE_LOWER_RIGHT, PANE_UPPER_LEFT, PANE_UPPER_RIGHT
      • getPaneInformation

        public PaneInformation getPaneInformation()
        Returns the information regarding the currently configured pane (split or freeze).
        Returns:
        null if no pane configured, or the pane information.
      • createProtect

        protected Record createProtect()
        creates a Protect record with protect set to false.
        Returns:
        a ProtectRecord
        See Also:
        ProtectRecord, Record
      • getProtect

        public ProtectRecord getProtect()
        Returns the ProtectRecord. If one is not contained in the sheet, then one is created.
      • getPassword

        public PasswordRecord getPassword()
        Returns the PasswordRecord. If one is not contained in the sheet, then one is created.
      • createPassword

        protected PasswordRecord createPassword()
        creates a Password record with password set to 00.
        Returns:
        a PasswordRecord
        See Also:
        PasswordRecord, Record
      • setDisplayGridlines

        public void setDisplayGridlines​(boolean show)
        /** Sets whether the gridlines are shown in a viewer.
        Parameters:
        show - whether to show gridlines or not
      • isDisplayGridlines

        public boolean isDisplayGridlines()
        Returns if gridlines are displayed.
        Returns:
        whether gridlines are displayed
      • setDisplayFormulas

        public void setDisplayFormulas​(boolean show)
        Sets whether the formulas are shown in a viewer.
        Parameters:
        show - whether to show formulas or not
      • isDisplayFormulas

        public boolean isDisplayFormulas()
        Returns if formulas are displayed.
        Returns:
        whether formulas are displayed
      • setDisplayRowColHeadings

        public void setDisplayRowColHeadings​(boolean show)
        Sets whether the RowColHeadings are shown in a viewer.
        Parameters:
        show - whether to show RowColHeadings or not
      • isDisplayRowColHeadings

        public boolean isDisplayRowColHeadings()
        Returns if RowColHeadings are displayed.
        Returns:
        whether RowColHeadings are displayed
      • getMargins

        protected Margin[] getMargins()
        Returns the array of margins. If not created, will create.
        Returns:
        the array of marings.
      • aggregateDrawingRecords

        public int aggregateDrawingRecords​(DrawingManager2 drawingManager)
      • preSerialize

        public void preSerialize()
        Perform any work necessary before the sheet is about to be serialized. For instance the escher aggregates size needs to be calculated before serialization so that the dgg record (which occurs first) can be written.
      • shiftBreaks

        public void shiftBreaks​(PageBreakRecord breaks,
                                short start,
                                short stop,
                                int count)
        Shifts all the page breaks in the range "count" number of rows/columns
        Parameters:
        breaks - The page record to be shifted
        start - Starting "main" value to shift breaks
        stop - Ending "main" value to shift breaks
        count - number of units (rows/columns) to shift by
      • setRowBreak

        public void setRowBreak​(int row,
                                short fromCol,
                                short toCol)
        Sets a page break at the indicated row
        Parameters:
        row -
      • removeRowBreak

        public void removeRowBreak​(int row)
        Removes a page break at the indicated row
        Parameters:
        row -
      • isRowBroken

        public boolean isRowBroken​(int row)
        Queries if the specified row has a page break
        Parameters:
        row -
        Returns:
        true if the specified row has a page break
      • setColumnBreak

        public void setColumnBreak​(short column,
                                   short fromRow,
                                   short toRow)
        Sets a page break at the indicated column
      • removeColumnBreak

        public void removeColumnBreak​(short column)
        Removes a page break at the indicated column
      • isColumnBroken

        public boolean isColumnBroken​(short column)
        Queries if the specified column has a page break
        Returns:
        true if the specified column has a page break
      • shiftRowBreaks

        public void shiftRowBreaks​(int startingRow,
                                   int endingRow,
                                   int count)
        Shifts the horizontal page breaks for the indicated count
        Parameters:
        startingRow -
        endingRow -
        count -
      • shiftColumnBreaks

        public void shiftColumnBreaks​(short startingCol,
                                      short endingCol,
                                      short count)
        Shifts the vertical page breaks for the indicated count
        Parameters:
        startingCol -
        endingCol -
        count -
      • getRowBreaks

        public Iterator getRowBreaks()
        Returns all the row page breaks
        Returns:
        all the row page breaks
      • getNumRowBreaks

        public int getNumRowBreaks()
        Returns the number of row page breaks
        Returns:
        the number of row page breaks
      • getColumnBreaks

        public Iterator getColumnBreaks()
        Returns all the column page breaks
        Returns:
        all the column page breaks
      • getNumColumnBreaks

        public int getNumColumnBreaks()
        Returns the number of column page breaks
        Returns:
        the number of column page breaks
      • setColumnGroupCollapsed

        public void setColumnGroupCollapsed​(short columnNumber,
                                            boolean collapsed)
      • protectSheet

        public void protectSheet​(String password,
                                 boolean objects,
                                 boolean scenarios)
        protect a spreadsheet with a password (not encypted, just sets protect flags and the password.
        Parameters:
        password - to set
        objects - are protected
        scenarios - are protected
      • unprotectSheet

        public void unprotectSheet​(boolean sheet,
                                   boolean objects,
                                   boolean scenarios)
        unprotect objects in the sheet (will not protect them, but any set to false are unprotected.
        Parameters:
        sheet - is unprotected (false = unprotect)
        objects - are unprotected (false = unprotect)
        scenarios - are unprotected (false = unprotect)
      • isProtected

        public boolean[] isProtected()
        Returns:
        {sheet is protected, objects are proteced, scenarios are protected}
      • groupRowRange

        public void groupRowRange​(int fromRow,
                                  int toRow,
                                  boolean indent)
      • setRowGroupCollapsed

        public void setRowGroupCollapsed​(int row,
                                         boolean collapse)