Class CellRangeAddressBase

  • All Implemented Interfaces:
    java.lang.Iterable<CellAddress>
    Direct Known Subclasses:
    CellRangeAddress, CellRangeAddress8Bit

    public abstract class CellRangeAddressBase
    extends java.lang.Object
    implements java.lang.Iterable<CellAddress>
    See OOO documentation: excelfileformat.pdf sec 2.5.14 - 'Cell Range Address'

    Common superclass of 8-bit and 16-bit versions

    • Method Detail

      • validate

        public void validate​(SpreadsheetVersion ssVersion)
        Validate the range limits against the supplied version of Excel
        Parameters:
        ssVersion - the version of Excel to validate against
        Throws:
        java.lang.IllegalArgumentException - if the range limits are outside of the allowed range
      • isFullColumnRange

        public final boolean isFullColumnRange()
      • isFullRowRange

        public final boolean isFullRowRange()
      • getFirstColumn

        public final int getFirstColumn()
        Returns:
        column number for the upper left hand corner
      • getFirstRow

        public final int getFirstRow()
        Returns:
        row number for the upper left hand corner
      • getLastColumn

        public final int getLastColumn()
        Returns:
        column number for the lower right hand corner
      • getLastRow

        public final int getLastRow()
        Returns:
        row number for the lower right hand corner
      • isInRange

        public boolean isInRange​(int rowInd,
                                 int colInd)
        Determines if the given coordinates lie within the bounds of this range.
        Parameters:
        rowInd - The row, 0-based.
        colInd - The column, 0-based.
        Returns:
        True if the coordinates lie within the bounds, false otherwise.
        See Also:
        for checking if two ranges overlap
      • isInRange

        public boolean isInRange​(CellReference ref)
        Determines if the given CellReference lies within the bounds of this range.

        NOTE: It is up to the caller to ensure the reference is for the correct sheet, since this instance doesn't have a sheet reference.

        Parameters:
        ref - the CellReference to check
        Returns:
        True if the reference lies within the bounds, false otherwise.
        See Also:
        for checking if two ranges overlap
      • isInRange

        public boolean isInRange​(CellAddress ref)
        Determines if the given CellAddress lies within the bounds of this range.

        NOTE: It is up to the caller to ensure the reference is for the correct sheet, since this instance doesn't have a sheet reference.

        Parameters:
        ref - the CellAddress to check
        Returns:
        True if the reference lies within the bounds, false otherwise.
        See Also:
        for checking if two ranges overlap
      • isInRange

        public boolean isInRange​(Cell cell)
        Determines if the given Cell lies within the bounds of this range.

        NOTE: It is up to the caller to ensure the reference is for the correct sheet, since this instance doesn't have a sheet reference.

        Parameters:
        cell - the Cell to check
        Returns:
        True if the cell lies within the bounds, false otherwise.
        See Also:
        for checking if two ranges overlap
      • containsRow

        public boolean containsRow​(int rowInd)
        Check if the row is in the specified cell range
        Parameters:
        rowInd - the row to check
        Returns:
        true if the range contains the row [rowInd]
      • containsColumn

        public boolean containsColumn​(int colInd)
        Check if the column is in the specified cell range
        Parameters:
        colInd - the column to check
        Returns:
        true if the range contains the column [colInd]
      • intersects

        public boolean intersects​(CellRangeAddressBase other)
        Determines whether or not this CellRangeAddress and the specified CellRangeAddress intersect.
        Parameters:
        other - a candidate cell range address to check for intersection with this range
        Returns:
        returns true if this range and other range have at least 1 cell in common
        See Also:
        for checking if a single cell intersects
      • getPosition

        public java.util.Set<CellRangeAddressBase.CellPosition> getPosition​(int rowInd,
                                                                            int colInd)
        Useful for logic like table/range styling, where some elements apply based on relative position in a range.
        Parameters:
        rowInd -
        colInd -
        Returns:
        set of CellRangeAddressBase.CellPositions occupied by the given coordinates. Empty if the coordinates are not in the range, never null.
        Since:
        3.17 beta 1
      • setFirstColumn

        public final void setFirstColumn​(int firstCol)
        Parameters:
        firstCol - column number for the upper left hand corner
      • setFirstRow

        public final void setFirstRow​(int firstRow)
        Parameters:
        firstRow - row number for the upper left hand corner
      • setLastColumn

        public final void setLastColumn​(int lastCol)
        Parameters:
        lastCol - column number for the lower right hand corner
      • setLastRow

        public final void setLastRow​(int lastRow)
        Parameters:
        lastRow - row number for the lower right hand corner
      • getNumberOfCells

        public int getNumberOfCells()
        Returns:
        the size of the range (number of cells in the area).
      • iterator

        public java.util.Iterator<CellAddress> iterator()
        Returns an iterator over the CellAddresses in this cell range in row-major order.
        Specified by:
        iterator in interface java.lang.Iterable<CellAddress>
        Since:
        POI 4.0.0
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object other)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object