У меня есть список диапазонов (загруженных из рабочей книги Excel через openpyxl) в списке (например, rng_list = ['$A$1:$A$3', '$B$1:$B$3', '$C$1:$C$3']
), и я хотел бы «распаковать» каждый из этих диапазонов в отдельные списки в списке списков (т.е. , unpacked_list = [['$A$1','$A$2','$A$3'], ['$B$1','$B$2','$B$3'], ['$C$1','$C$2','$C$3']]
).
Пожалуйста, ознакомьтесь с кодом ниже того, что я пробовал до сих пор в ноутбуке Jupyter. Любые мысли о том, почему я получаю ошибку ниже? или если у вас есть идеи о том, как я мог бы подойти к этому с другой стороны, это было бы очень ценно! Спасибо!
import os
from openpyxl import Workbook
from openpyxl.utils import get_column_letter
# create temp worksheet
wb_A = Workbook()
sheet_A = wb_A.create_sheet('sheetA')
# list with Excel ranges as str items in list
rng_list = ['$A$1:$B$10', '$C$1:$D$10', '$E$1:$F$10']
temp_list = []
unpacked_list = []
for item in rng_list:
for row in sheet_A(item): # use range from item in rng_list to iterate
through range in temp worksheet
for cell in row:
x = cell.row
y = cell.column
addr = get_column_letter(y) + str(x)
temp_list.append(addr)
unpacked_list.append(addr)
# delete temp worksheet
wb_A.remove(sheet_A)
unpacked_list
Я надеялся использовать диапазон str из списка для итерации по «фиктивному рабочему листу», созданному просто для итерации по диапазону ячеек и захвата соответствующих адресов ячеек в этом диапазоне. Я получаю следующую ошибку:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-85-13b28d369550> in <module>
14
15 for item in rng_list:
---> 16 for row in sheet_A(item): # use range from item in rng_list to iterate through range in temp worksheet
17 for cell in row:
18 x = cell.row
TypeError: 'Worksheet' object is not callable