не могу открыть таблицу openpyxl

В начале я скачиваю таблицу с google, затем читаю данные, но выдаётся AttributeError: 'NoneType' object has no attribute 'style'. Сам код:

import openpyxl
load = openpyxl.load_workbook('file.xlsx')

Ошибка:

Traceback (most recent call last):
  File "D:\PycharmProjects\Vasya\journal\v2\test.py", line 2, in <module>
    load = openpyxl.load_workbook('file.xlsx')
  File "C:\Users\misha\AppData\Local\Programs\Python\Python39\lib\site-packages\openpyxl\reader\excel.py", line 317, in load_workbook
    reader.read()
  File "C:\Users\misha\AppData\Local\Programs\Python\Python39\lib\site-packages\openpyxl\reader\excel.py", line 282, in read
    self.read_worksheets()
  File "C:\Users\misha\AppData\Local\Programs\Python\Python39\lib\site-packages\openpyxl\reader\excel.py", line 228, in read_worksheets
    ws_parser.bind_all()
  File "C:\Users\misha\AppData\Local\Programs\Python\Python39\lib\site-packages\openpyxl\worksheet\_reader.py", line 443, in bind_all
    self.bind_merged_cells()
  File "C:\Users\misha\AppData\Local\Programs\Python\Python39\lib\site-packages\openpyxl\worksheet\_reader.py", line 380, in bind_merged_cells
    self.ws._clean_merge_range(mcr)
  File "C:\Users\misha\AppData\Local\Programs\Python\Python39\lib\site-packages\openpyxl\worksheet\worksheet.py", line 607, in _clean_merge_range
    mcr.format()
  File "C:\Users\misha\AppData\Local\Programs\Python\Python39\lib\site-packages\openpyxl\worksheet\merge.py", line 109, in format
    if side.style is None:
AttributeError: 'NoneType' object has no attribute 'style'

Если же перед этим в таблице в ручную что-нибудь отредактировать, то ошибка не возвращается. Естественно я не собираюсь редактировать таблицы в ручную, что мне делать?


Ответы (1 шт):

Автор решения: Jack_oS

Файлы .xlsx содержат еще и sheet(листы):

from openpyxl import load_workbook

wb = load_workbook('file.xlsx')                    # откройте файл
# wb = load_workbook('file.xlsx', read_only=True)  # для защищенного просмотра
ws = wb.active                                     # выберите активный лист
# ws = wb.get_sheet_by_name(<sheet_name>)          # или по имени sheet_name

Теперь уже на выбранном листе ищите нужные вам данные:

cell_obj = ws.cell(row = 1, column = 1) 
→ Ссылка