Почему возникает ошибка при загрузке xlsx файла с использованием библиотеки openpyxl?
Никак не могу разобраться в причине ошибки при загрузке файла.. При попытке открыть и провести операцию над файлом:
from openpyxl import load_workbook
wb = load_workbook('test.xlsx')
sheet = wb.worksheets[0]
print (sheet.max_row)
Возникает следующая ошибка:
C:\Users\I\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\styles\stylesheet.py:214: UserWarning: Workbook contains no default style, apply openpyxl's default
warn("Workbook contains no default style, apply openpyxl's default")
Traceback (most recent call last):
File "C:\Users\I\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\descriptors\base.py", line 55, in _convert
value = expected_type(value)
ValueError: could not convert string to float: '10,7142857142857'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "D:\CodeLearning\Python\minitest.py", line 3, in <module>
wb = load_workbook('test.xlsx')
File "C:\Users\I\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\reader\excel.py", line 315, in load_workbook
reader.read()
File "C:\Users\I\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\reader\excel.py", line 280, in read
self.read_worksheets()
File "C:\Users\I\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\reader\excel.py", line 228, in read_worksheets
ws_parser.bind_all()
File "C:\Users\I\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\_reader.py", line 438, in bind_all
self.bind_col_dimensions()
File "C:\Users\I\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\_reader.py", line 410, in bind_col_dimensions
self.ws.column_dimensions[col] = ColumnDimension(self.ws, **cd)
File "C:\Users\I\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\worksheet\dimensions.py", line 150, in __init__
self.width = width
File "C:\Users\I\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\descriptors\base.py", line 67, in __set__
value = _convert(self.expected_type, value)
File "C:\Users\I\AppData\Local\Programs\Python\Python38-32\lib\site-packages\openpyxl\descriptors\base.py", line 57, in _convert
raise TypeError('expected ' + str(expected_type))
TypeError: expected <class 'float'>
При чем, если открыть файл Excel вручную и что-то в нем поменять (например удалить последнюю строку), то код срабатывает нормально.
Гуглил проблему, но все что нашел это аналогичный вопрос датированный серединой 2018 года. На тот момент предложили два решения - скачать версию openpyxl ранее 2.5.0 или удалить стили/фильтры в документе Excel.
Может кто-то сталкивался? есть иные пути решения? Из-за чего возникает ошибка?