Я не верю, что для этого есть какая-то встроенная библиотека, но вы можете сделать что-то вроде:
wb = openpyxl.load_workbook(filename)
sheet = wb['Sheet1']
rows = [21, 24] + list(range(31, 36) + [40]
cols = ["A", "O", "R", "S"]
for row in rows:
for col in cols:
cell = sheet[f"{col}{row}"]
В этом случае R
и S
являются последовательными, поэтому есть не большая проблема. Если у вас были большие диапазоны, которые будет утомительно писать вручную, проверьте, как создать диапазон символов и использовать его так же, как в rows
.
Как отмеченный stovfl , форматирование строки может быть более дорогим. Поскольку у нас есть строки и столбцы ячеек, мы можем использовать метод Worksheet.cell
с простым преобразованием:
from openpyxl.utils.cell import column_index_from_string
...
cols = ["A", "O", "R", "S"]
cols = [column_index_from_string(col) for col in cols]
...
cell = sheet.cell(row=row, col=col)
- Конечно, если вы в первую очередь будете использовать целочисленную запись для
cols
, преобразование не потребуется, и доступ будет выглядеть как последняя строка кода.