Опитвах се да отворя XLSX файл с помощта на модул openpyxl. Следва моят скрипт: -
from openpyxl import load_workbook
print "Going to execute the script"
workbook = load_workbook("FileName.xlsx")
worksheet = workbook.get_sheet_by_name("Sheet01")
worksheet['B8'] = "Customer07"
workbook.save("FileName.xlsx")
print "End of script execution"
Когато изпълня този скрипт, получавам следната грешка: -
/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/xml/__init__.py:15: UserWarning: The installed version of lxml is too old to be used with openpyxl
warnings.warn("The installed version of lxml is too old to be used with openpyxl")
Going to execute the script
/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/workbook/names/named_range.py:121: UserWarning: Discarded range with reserved name
warnings.warn("Discarded range with reserved name")
Traceback (most recent call last):
File "check.py", line 11, in <module>
workbook.save("FileName.xlsx")
File "/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/workbook/workbook.py", line 296, in save
save_workbook(self, filename)
File "/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/writer/excel.py", line 191, in save_workbook
writer.save(filename, as_template=as_template)
File "/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/writer/excel.py", line 174, in save
self.write_data(archive, as_template=as_template)
File "/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/writer/excel.py", line 85, in write_data
self._write_worksheets(archive)
File "/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/writer/excel.py", line 111, in _write_worksheets
write_worksheet(sheet, self.workbook.shared_strings,
File "/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/writer/worksheet.py", line 299, in write_worksheet
xf.write(comments)
File "/usr/lib/python2.6/contextlib.py", line 34, in __exit__
self.gen.throw(type, value, traceback)
File "/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/xml/xmlfile.py", line 42, in element
yield
File "/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/writer/worksheet.py", line 276, in write_worksheet
hf = write_header_footer(worksheet)
File "/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/writer/worksheet.py", line 172, in write_header_footer
header = worksheet.header_footer.getHeader()
File "/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/worksheet/header_footer.py", line 150, in getHeader
t.append(self.left_header.get())
File "/usr/lib/python2.6/site-packages/openpyxl-2.2.0-py2.6.egg/openpyxl/worksheet/header_footer.py", line 90, in get
t.append('&%d' % self.font_size)
TypeError: %d format: a number is required, not str
И след това, когато отворя „FileName.xlsx“, се появява изскачащ прозорец със съобщение „Excel намери нечетлив коментар в „FileName.xlsx“. Искате ли да възстановите съдържанието на тази работна книга? Ако имате доверие на източника на тази работна книга , щракнете върху да". Независимо от какъвто и бутон да щракна, работната книга е празна.
Ако коментирам следния ред в скрипта,
workbook.save("FileName.xlsx")
скриптът работи без грешка, но модификациите не се записват в работната книга. Моля, помогнете ми с това.