Я использую openpyxl с python 3.8.3 в pycharm для получения информации из электронной таблицы Excel. Я использую для l oop, чтобы искать по всей строке заданное c имя. Вот мой код:
for i in range(1, ws.max_col):
column_cell = ws.cell(column=i, row=todays_row)
# print(column_cell)
if ws[column_cell].value == recipient:
cells_with_name.append(str(i))
Если есть еще что-то полезное, я могу добавить еще. Ранее я объявил column_cell как глобальную переменную, поэтому не думаю, что это проблема. В коде ошибки указано, что ws.max_col не имеет значения. Я попытался заменить его на ws.max_column, но это дало более длинную ошибку, говоря в основном то же самое. Я новичок в python, поэтому может быть что-то очевидное я пропустил. Спасибо!
(И последнее, все это происходит в функции, хотя я не знаю, имеет ли это значение.)
Изменить: вот мой код ошибки, я не Не знаю, поможет ли это:
File "D:/Users/MyUse/PycharmProjects/inpyscheduler/mainEmail.py", line 25, in create_message
ws_max_col = ws["max_column"].value
File "D:\Users\MyUse\PycharmProjects\inpyscheduler\venv\lib\site-packages\openpyxl\worksheet\worksheet.py", line 286, in __getitem__
min_col, min_row, max_col, max_row = range_boundaries(key)
File "D:\Users\MyUse\PycharmProjects\inpyscheduler\venv\lib\site-packages\openpyxl\utils\cell.py", line 135, in range_boundaries
raise ValueError(msg)
ValueError: max_column is not a valid coordinate or range
Редактировать 2: Вот мой новый код:
for i in range(1, ws.max_column+1):
column_cell = ws.cell(column=i, row=todays_row)
# print(column_cell)
if ws[column_cell].value == recipient:
cells_with_name.append(str(i))
И вот моя ошибка:
File "D:/Users/MyUse/PycharmProjects/inpyscheduler/mainEmail.py", line 34, in create_message
if ws[column_cell].value == recipient:
File "D:\Users\MyUse\PycharmProjects\inpyscheduler\venv\lib\site-packages\openpyxl\worksheet\worksheet.py", line 286, in __getitem__
min_col, min_row, max_col, max_row = range_boundaries(key)
File "D:\Users\MyUse\PycharmProjects\inpyscheduler\venv\lib\site-packages\openpyxl\utils\cell.py", line 133, in range_boundaries
m = ABSOLUTE_RE.match(range_string)
TypeError: expected string or bytes-like object
Опять же, извините, если это странно отформатировано, я новичок как в python, так и в Stackoverflow.