Class CellRangeAddressBase

java.lang.Object
org.apache.poi.ss.util.CellRangeAddressBase
All Implemented Interfaces:
Iterable<CellAddress>
Direct Known Subclasses:
CellRangeAddress, CellRangeAddress8Bit

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

Common superclass of 8-bit and 16-bit versions

  • Constructor Details

    • CellRangeAddressBase

      protected CellRangeAddressBase(int firstRow, int lastRow, int firstCol, int lastCol)
  • Method Details

    • 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:
      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:
    • 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:
    • 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:
    • 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:
    • 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:
    • getPosition

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

      public final String toString()
      Overrides:
      toString in class Object
    • getMinRow

      protected int getMinRow()
    • getMaxRow

      protected int getMaxRow()
    • getMinColumn

      protected int getMinColumn()
    • getMaxColumn

      protected int getMaxColumn()
    • equals

      public boolean equals(Object other)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object