Package org.apache.poi.ss.util
Class CellRangeAddressBase
- java.lang.Object
-
- org.apache.poi.ss.util.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
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CellRangeAddressBase.CellPosition
Indicates a cell or range is in the given relative position in a range.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
containsColumn(int colInd)
Check if the column is in the specified cell rangeboolean
containsRow(int rowInd)
Check if the row is in the specified cell rangeboolean
equals(java.lang.Object other)
int
getFirstColumn()
int
getFirstRow()
int
getLastColumn()
int
getLastRow()
int
getNumberOfCells()
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.int
hashCode()
boolean
intersects(CellRangeAddressBase other)
Determines whether or not this CellRangeAddress and the specified CellRangeAddress intersect.boolean
isFullColumnRange()
boolean
isFullRowRange()
boolean
isInRange(int rowInd, int colInd)
Determines if the given coordinates lie within the bounds of this range.boolean
isInRange(Cell cell)
Determines if the givenCell
lies within the bounds of this range.boolean
isInRange(CellAddress ref)
Determines if the givenCellAddress
lies within the bounds of this range.boolean
isInRange(CellReference ref)
Determines if the givenCellReference
lies within the bounds of this range.java.util.Iterator<CellAddress>
iterator()
Returns an iterator over the CellAddresses in this cell range in row-major order.void
setFirstColumn(int firstCol)
void
setFirstRow(int firstRow)
void
setLastColumn(int lastCol)
void
setLastRow(int lastRow)
java.lang.String
toString()
void
validate(SpreadsheetVersion ssVersion)
Validate the range limits against the supplied version of Excel
-
-
-
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 givenCellReference
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 givenCellAddress
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 givenCell
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.CellPosition
s 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 interfacejava.lang.Iterable<CellAddress>
- Since:
- POI 4.0.0
-
toString
public final java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
equals
public boolean equals(java.lang.Object other)
- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
- Overrides:
hashCode
in classjava.lang.Object
-
-