Package org.apache.poi.ss.util
Class CellRangeUtil
- java.lang.Object
-
- org.apache.poi.ss.util.CellRangeUtil
-
public final class CellRangeUtil extends Object
Utility class that builds onCellRangeAddressPortions of this class may be moved toCellRangeAddressBase
-
-
Field Summary
Fields Modifier and Type Field Description static intENCLOSESfirst range encloses or is equal to the secondstatic intINSIDEfirst range is within the second rangestatic intNO_INTERSECTIONstatic intOVERLAP
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static booleancontains(CellRangeAddress crA, CellRangeAddress crB)Check if cell range A contains cell range B (B <= A) TODO: move this intoCellRangeAddressBasestatic CellRangeAddresscreateEnclosingCellRange(CellRangeAddress crA, CellRangeAddress crB)Create an enclosing CellRange for the two cell ranges.static booleanhasExactSharedBorder(CellRangeAddress crA, CellRangeAddress crB)Check if the two cell ranges have a shared border.static intintersect(CellRangeAddress crA, CellRangeAddress crB)Get the type of intersection between two cell rangesstatic CellRangeAddress[]mergeCellRanges(CellRangeAddress[] cellRanges)Do all possible cell merges between cells of the list so that:
if a cell range is completely inside of another cell range, it gets removed from the list if two cells have a shared border, merge them into one bigger cell range
-
-
-
Field Detail
-
NO_INTERSECTION
public static final int NO_INTERSECTION
- See Also:
- Constant Field Values
-
OVERLAP
public static final int OVERLAP
- See Also:
- Constant Field Values
-
INSIDE
public static final int INSIDE
first range is within the second range- See Also:
- Constant Field Values
-
ENCLOSES
public static final int ENCLOSES
first range encloses or is equal to the second- See Also:
- Constant Field Values
-
-
Method Detail
-
intersect
public static int intersect(CellRangeAddress crA, CellRangeAddress crB)
Get the type of intersection between two cell ranges- Parameters:
crB- - the specified range- Returns:
- code which reflects how the specified range is related to this range.
Possible return codes are:NO_INTERSECTION- the specified range is outside of this range;OVERLAP- both ranges partially overlapINSIDE- the specified range is inside of this oneENCLOSES- the specified range encloses (possibly exactly the same as) this range
- See Also:
CellRangeAddressBase.intersects(CellRangeAddressBase)
-
mergeCellRanges
public static CellRangeAddress[] mergeCellRanges(CellRangeAddress[] cellRanges)
Do all possible cell merges between cells of the list so that:
- if a cell range is completely inside of another cell range, it gets removed from the list
- if two cells have a shared border, merge them into one bigger cell range
- Parameters:
cellRanges- the ranges to merge- Returns:
- list of merged cell ranges
-
contains
public static boolean contains(CellRangeAddress crA, CellRangeAddress crB)
Check if cell range A contains cell range B (B <= A) TODO: move this intoCellRangeAddressBase- Parameters:
crA- cell range AcrB- cell range B- Returns:
- true if cell range A contains cell range B
-
hasExactSharedBorder
public static boolean hasExactSharedBorder(CellRangeAddress crA, CellRangeAddress crB)
Check if the two cell ranges have a shared border.- Returns:
trueif the ranges have a complete shared border (i.e. the two ranges together make a simple rectangular region.
-
createEnclosingCellRange
public static CellRangeAddress createEnclosingCellRange(CellRangeAddress crA, CellRangeAddress crB)
Create an enclosing CellRange for the two cell ranges.- Returns:
- enclosing CellRange
-
-