Class RangeObj
- class ooodev.utils.data_type.range_obj.RangeObj(col_start, col_end, row_start, row_end, sheet_idx=-1)[source]
Range Parts
See also
Changed in version 0.32.0: Added support for
__contains__
and__iter__
methods. If sheet_idx is set to -2 then no attempt is made to get the sheet index or name from spreadsheet.New in version 0.8.2.
- Parameters:
col_start (str) –
col_end (str) –
row_start (int) –
row_end (int) –
sheet_idx (int) –
- __contains__(value)[source]
Gets if current instance contains a cell value.
- Parameters:
value (str) – Cell object
value – Cell address
value – Cell Values
value – Cell name
- Returns:
True
if instance contains cell; Otherwise,False
.- Return type:
bool
Note
If cell input contains sheet info the it is use in comparison. Otherwise sheet is ignored.
See also
New in version 0.32.0.
- __eq__(other)[source]
Compare if two ranges are equal
- Parameters:
other (object) – Range Object,
RangeValues
or str in range format such asA1:C4
- Returns:
True
if equal; Otherwise,False
- Return type:
bool
- __getitem__(key)[source]
Get a cell object from range
- Parameters:
key (int) – Zero-based index of cell.
- Raises:
TypeError – If index is not a string.
IndexError – If index is out of range.
- Returns:
Cell Object
- Return type:
Example
>>> rng = RangeObj.from_range("A1:C4") >>> cell = rng["B3"] >>> print(cell) B3
- __init__(col_start, col_end, row_start, row_end, sheet_idx=-1)
- Parameters:
col_start (str) –
col_end (str) –
row_start (int) –
row_end (int) –
sheet_idx (int) –
- Return type:
None
- __iter__()[source]
Iterates over all cells in the range.
The iteration is done in a column-major order, meaning that the cells are iterated over by column, then by row.
Example
# each cell is an instance of CellObj >>> rng = RangeObj.from_range("A1:C4") >>> for cell in rng: >>> print(cell) A1 B1 C1 A2 B2 C2 A3 B3 C3 A4 B4 C4
- Yields:
Generator[mCellObj.CellObj, None, None] – Cell Object
- Return type:
Generator[CellObj, None, None]
See also
New in version 0.32.0.
- Return type:
Generator
[CellObj
,None
,None
]
- contains(cell_obj: ooodev.utils.data_type.cell_obj.CellObj)[source]
- contains(cell_addr: com.sun.star.table.CellAddress)
- contains(cell_vals: ooodev.utils.data_type.cell_values.CellValues)
- contains(cell_name: str)
- contains(*args, **kwargs)
Gets if current instance contains a cell value.
- Parameters:
cell_obj (CellObj) – Cell object
cell_addr (CellAddress) – Cell address
cell_vals (CellValues) – Cell Values
cell_name (str) – Cell name
- Returns:
True
if instance contains cell; Otherwise,False
.- Return type:
bool
Note
If cell input contains sheet info the it is use in comparison. Otherwise sheet is ignored.
See also
- copy()[source]
Copy the current instance.
- Returns:
New instance of RangeObj
- Return type:
New in version 0.47.5.
- static from_range(range_val: str) ooodev.utils.data_type.range_obj.RangeObj [source]
- static from_range(range_val: ooodev.utils.data_type.range_values.RangeValues) ooodev.utils.data_type.range_obj.RangeObj
- static from_range(range_val: ooo.lo.table.cell_range_address.CellRangeAddress) ooodev.utils.data_type.range_obj.RangeObj
- static from_range(range_val)
Gets a
RangeObj
from are range name.- Parameters:
range_name (str) – Range name such as
A1:D34
.range_val (str | mRngValues.RangeValues | CellRangeAddress) –
- Returns:
Object that represents the name range.
- Return type:
- get_cell_range_address()[source]
Gets a Cell Range Address
- Returns:
Cell range Address
- Return type:
CellRangeAddress
- get_cells()[source]
Get a generator that can loop over all cells within current range.
- Returns:
Nested Generator that returns
CellObj
for each cell in current range.- Return type:
Generator[Generator[CellObj, None, None], None, None]
Example
>>> rng = RangeObj.from_range("A1:C3") >>> for row, cells in enumerate(rng.get_cells()): >>> print("Row:", row) >>> for cell in cells: >>> print(f" {cell}: {repr(cell)}") >>> print("Done") Row: 0 A1: CellObj(col='A', row=1, sheet_idx=0) B1: CellObj(col='B', row=1, sheet_idx=0) C1: CellObj(col='C', row=1, sheet_idx=0) Row: 1 A2: CellObj(col='A', row=2, sheet_idx=0) B2: CellObj(col='B', row=2, sheet_idx=0) C2: CellObj(col='C', row=2, sheet_idx=0) Row: 2 A3: CellObj(col='A', row=3, sheet_idx=0) B3: CellObj(col='B', row=3, sheet_idx=0) C3: CellObj(col='C', row=3, sheet_idx=0) Done
- get_col(col: int) ooodev.utils.data_type.range_obj.RangeObj [source]
- get_col(col: str) ooodev.utils.data_type.range_obj.RangeObj
- get_col(col)
Gets a Range object that represents only the column range.
- Parameters:
col (int | str) – Zero-based column index or column letter such as
A
.- Raises:
IndexError – If column index is out of range.
- Returns:
Range Object
- Return type:
New in version 0.15.1.
- get_end_col()[source]
Gets a Range object that represents only the end column range.
- Returns:
Range Object
- Return type:
- get_end_row()[source]
Gets a Range object that represents only the end row range.
- Returns:
Range Object
- Return type:
- get_row(row)[source]
Gets a Range object that represents a row in range.
- Parameters:
row (int) – Zero-based row index.
- Raises:
IndexError – If row index is out of range.
- Returns:
Range Object
- Return type:
New in version 0.15.1.
- get_start_col()[source]
Gets a Range object that represents only the start column range.
- Returns:
Range Object
- Return type:
- get_start_row()[source]
Gets a Range object that represents only the start row range.
- Returns:
Range Object
- Return type:
- is_single_cell()[source]
Gets if a instance is a single cell or a range
- Returns:
True
if single cell; Otherwise,False
- Return type:
bool
- is_single_col()[source]
Gets if instance is a single column or multi-column
- Returns:
True
if single column; Otherwise,False
- Return type:
bool
Note
If instance is a single cell address then
True
is returned.
- is_single_row()[source]
Gets if instance is a single row or multi-row
- Returns:
True
if single row; Otherwise,False
- Return type:
bool
Note
If instance is a single cell address then
True
is returned.
- set_sheet_index(idx=None)[source]
Set the sheet index for the range.
If
idx
isNone
then the active sheet index is used.Setting the sheet index to -2 will cause the sheet name to always return an empty string.
Changing the sheet index will cause the sheet name to be re-evaluated.
- Parameters:
idx (int, optional) – Sheet index, Default
None
.- Returns:
Self
- Return type:
New in version 0.32.0.
- to_string(include_sheet_name=False)[source]
Get a string representation of range
- Parameters:
include_sheet_name (bool, optional) – If
True
and there is a sheet name then it is included in format ofSheet1.A2:G3
; Otherwise format ofA2:G3
.Defaults toFalse
.- Returns:
Gets a string representation such as
A1:T12
- Return type:
str
- property cell_count: int
Gets the number of cell in the current range
- Returns:
Number of cells
- Return type:
int
- property col_count: int
Gets the number of columns in the current range
- Returns:
Number of columns
- Return type:
int
- col_end: str
Column end such as
C
- col_start: str
Column start such as
A
- property end_col_index: int
Gets end column zero-based index
- Return type:
int
- property end_row_index: int
Gets end row zero-based index
- Return type:
int
- property row_count: int
Gets the number of rows in the current range
- Returns:
Number of rows
- Return type:
int
- row_end: int
Row end such as
125
- row_start: int
Row start such as
1
- sheet_idx: int = -1
Sheet index that this cell value belongs to. If value is
-1
then the active spreadsheet, if available, is used to get the sheet index. If the value is-2
then no sheet index is applied and sheet name will always return and empty string.
- property sheet_name: str
Gets sheet name
- Return type:
str
- property start_col_index: int
Gets start column zero-based index
- Return type:
int
- property start_row_index: int
Gets start row zero-based index
- Return type:
int