Для более эффективной работы с ячейками, в модуле openpyxl
доступна коллекция утилит openpyxl.utils.cell
.
('B', 12)
.(n_row, n_col)
.absolute_coordinate(coord_string)
:Функция absolute_coordinate()
преобразовывает координаты coord_string
в строку абсолютных координат (B12
=> $B$12
)
>>> from openpyxl import Workbook >>> from openpyxl.utils.cell import absolute_coordinate >>> wb=Workbook() >>> ws=wb.active >>> absolute_coordinate('B12') # '$B$12'
cols_from_range(range_string)
:Функция cols_from_range()
получает отдельные адреса для каждой ячейки в диапазоне range_string
по столбцам.
Выдает одну строку за раз.
>>> from openpyxl import Workbook >>> from openpyxl.utils.cell import cols_from_range >>> wb=Workbook() >>> ws=wb.active >>> list(cols_from_range('B1:D2')) # [('B1', 'B2'), ('C1', 'C2'), ('D1', 'D2')]
column_index_from_string(str_col)
:Функция column_index_from_string()
преобразовывает имя столбца str_col
в числовой индекс (A
=> 1).
>>> from openpyxl import Workbook >>> from openpyxl.utils.cell import column_index_from_string >>> wb=Workbook() >>> ws=wb.active >>> column_index_from_string('B') # 2
coordinate_from_string(coord_string)
:Функция coordinate_from_string()
преобразовывает строки координат coord_string
стиля Excel, например B12
, в кортеж ('B', 12)
.
>>> from openpyxl import Workbook >>> from openpyxl.utils.cell import coordinate_from_string >>> wb=Workbook() >>> ws=wb.active >>> coordinate_from_string('B12') # ('B', 12)
coordinate_to_tuple(coordinate)
:Функция coordinate_to_tuple()
преобразовывает координаты coordinate
стиля Excel в кортеж (row, colum)
.
>>> from openpyxl import Workbook >>> from openpyxl.utils.cell import coordinate_to_tuple >>> wb=Workbook() >>> ws=wb.active >>> coordinate_to_tuple('B12') # (12, 2)
get_column_interval(start, end)
:Функция get_column_interval()
возвращает все столбцы в интервале, учитывая начальный столбец start
и конечный end
.
Начальный и конечный столбцы могут быть либо буквами столбца, либо индексами с отсчетом от 1.
>>> from openpyxl import Workbook >>> from openpyxl.utils.cell import get_column_interval >>> wb=Workbook() >>> ws=wb.active >>> get_column_interval('B', 'G') # ['B', 'C', 'D', 'E', 'F', 'G'] >>> get_column_interval(15, 20) # ['O', 'P', 'Q', 'R', 'S', 'T']
get_column_letter(idx)
:Функция get_column_letter()
преобразовывает индекс столбца idx
в букву столбца (3 => C
)
>>> from openpyxl import Workbook >>> from openpyxl.utils.cell import get_column_letter >>> wb=Workbook() >>> ws=wb.active >>> get_column_letter(12) # 'L'
range_boundaries(range_string)
:Функция range_boundaries()
преобразовывает строки диапазона range_string
в кортеж границ: (min_col, min_row, max_col, max_row)
Координаты ячейки будут преобразованы в диапазон с учетом ячеек на обоих концах.
>>> from openpyxl import Workbook >>> from openpyxl.utils.cell import range_boundaries >>> wb=Workbook() >>> ws=wb.active >>> range_boundaries('B1:E3') # (2, 1, 5, 3)
range_to_tuple(range_string)
:Функция range_boundaries()
преобразовывает диапазон рабочего листа range_string
в имя листа и максимальные и минимальные индексы координат.
>>> from openpyxl import Workbook >>> from openpyxl.utils.cell import range_to_tuple >>> wb=Workbook() >>> ws=wb.active >>> range_to_tuple('Sheet!B1:D3') # ('Sheet', (2, 1, 4, 3))
rows_from_range(range_string)
:Функция rows_from_range()
получает отдельные адреса для каждой ячейки в диапазоне range_string
по строкам.
Выдает одну строку за раз.
>>> from openpyxl import Workbook >>> from openpyxl.utils.cell import rows_from_range >>> wb=Workbook() >>> ws=wb.active >>> list(rows_from_range('B1:C3')) # [('B1', 'C1'), ('B2', 'C2'), ('B3', 'C3')]