openpyxlでエラー:'NoneType' object has no attribute 'style'が出た時

- Python -
2021.03.31
Python[パイソン]

Pythonのopenpyxlでエクセルを読み込もうとした時に、以下エラーが出た時の対処法をメモしておきます。根本的な原因究明はできていないので悪しからず。

・・・
if side.style is None:

AttributeError: 'NoneType' object has no attribute 'style'

エラーが出ていた時の実行時に出力されたログ全文はこれです。

~$ python excel_read.py

Traceback (most recent call last):
File "excel_read.py", line 143, in <module>
reader = Reader()
File "excel_read.py", line 33, in __init__
self.read_excel()
File "excel_read.py", line 47, in read_excel
self.wb = openpyxl.load_workbook(self.target_excel_path)
File "/usr/local/lib/python3.8/site-packages/openpyxl/reader/excel.py", line 317, in load_workbook
reader.read()
File "/usr/local/lib/python3.8/site-packages/openpyxl/reader/excel.py", line 282, in read
self.read_worksheets()
File "/usr/local/lib/python3.8/site-packages/openpyxl/reader/excel.py", line 228, in read_worksheets
ws_parser.bind_all()
File "/usr/local/lib/python3.8/site-packages/openpyxl/worksheet/_reader.py", line 443, in bind_all
self.bind_merged_cells()
File "/usr/local/lib/python3.8/site-packages/openpyxl/worksheet/_reader.py", line 380, in bind_merged_cells
self.ws._clean_merge_range(mcr)
File "/usr/local/lib/python3.8/site-packages/openpyxl/worksheet/worksheet.py", line 607, in _clean_merge_range
mcr.format()
File "/usr/local/lib/python3.8/site-packages/openpyxl/worksheet/merge.py", line 109, in format
if side.style is None:
AttributeError: 'NoneType' object has no attribute 'style'

openpyxlで'NoneType' object has no attribute 'style'が出た時

結論、「読み込み対象のセル範囲を罫線で囲う」ということで解決しました。

読み込み範囲を選択して...

「格子」で罫線をひいただけ

正直なんでこれで解決することになるのかまで突き止めていませんが、確かにこれでエラーなく読み込めるようになったのでした...。

↑TOP