Cannot read XLSX files where PageMargins parameters are set as empty strings
I try to load this XLSX file using the following code:
import openpyxl
path = 'EML_export.xlsx'
workbook = openpyxl.load_workbook(path)
But, I got this error:
/Users/cagatay/.conda/envs/openpyxls/bin/python /Users/cagatay/Desktop/Workspace/QYOBO/openpyxls/main.py
Traceback (most recent call last):
File "/Users/cagatay/.conda/envs/openpyxls/lib/python3.11/site-packages/openpyxl/descriptors/base.py", line 55, in _convert
value = expected_type(value)
^^^^^^^^^^^^^^^^^^^^
ValueError: could not convert string to float: ''
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/cagatay/Desktop/Workspace/QYOBO/openpyxls/main.py", line 7, in <module>
workbook = openpyxl.load_workbook(path)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/cagatay/.conda/envs/openpyxls/lib/python3.11/site-packages/openpyxl/reader/excel.py", line 317, in load_workbook
reader.read()
File "/Users/cagatay/.conda/envs/openpyxls/lib/python3.11/site-packages/openpyxl/reader/excel.py", line 282, in read
self.read_worksheets()
File "/Users/cagatay/.conda/envs/openpyxls/lib/python3.11/site-packages/openpyxl/reader/excel.py", line 228, in read_worksheets
ws_parser.bind_all()
File "openpyxl/worksheet/_reader.py", line 448, in openpyxl.worksheet._reader.WorksheetReader.bind_all
File "openpyxl/worksheet/_reader.py", line 351, in openpyxl.worksheet._reader.WorksheetReader.bind_cells
File "openpyxl/worksheet/_reader.py", line 151, in parse
File "/Users/cagatay/.conda/envs/openpyxls/lib/python3.11/site-packages/openpyxl/descriptors/serialisable.py", line 103, in from_tree
return cls(**attrib)
^^^^^^^^^^^^^
File "/Users/cagatay/.conda/envs/openpyxls/lib/python3.11/site-packages/openpyxl/worksheet/page.py", line 169, in __init__
self.left = left
^^^^^^^^^
File "/Users/cagatay/.conda/envs/openpyxls/lib/python3.11/site-packages/openpyxl/descriptors/base.py", line 67, in __set__
value = _convert(self.expected_type, value)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/cagatay/.conda/envs/openpyxls/lib/python3.11/site-packages/openpyxl/descriptors/base.py", line 57, in _convert
raise TypeError('expected ' + str(expected_type))
TypeError: expected <class 'float'>
Process finished with exit code 1
It seems this error occurs when parameters of PageMargins
are set to empty strings. I found the PageMargins
in EML_export/xl/worksheets/sheet1.xml
as follows:
<pageMargins left="" right="" top="" bottom="" header="0.3" footer="0.3"/>