Openpyxl Workbook.save 函数创建一个损坏且无法打开的 Excel (.xlsx) 文件 [英] Openpyxl Workbook.save function creates a corrupt and un-openable Excel (.xlsx) file

查看:182
本文介绍了Openpyxl Workbook.save 函数创建一个损坏且无法打开的 Excel (.xlsx) 文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试使用 八月威廉对此问题的解决方案,但这也不起作用.我没有切换工作簿类型,即 .xlsm 到 .xlsx,这似乎是一个单独的问题.我浏览了 Openpyxl's Manual 试图找到错误报告或错误修复,但无济于事.下面是我非常简单的代码.接下来是导致创建工作簿的 python 错误消息,但它已损坏且无法加载.任何帮助表示赞赏.-谢谢!!

I have tried using August William's solution to this issue, but that also didn't work. I am not switching workbook types, i.e. .xlsm to .xlsx, which appears to be a separate issue. I have looked through Openpyxl's Manual trying to find maybe a bug report or bug fix, but to no avail. The below is my very simple code. Following that is the python error message which results in a workbook being created, but it is corrupted and fails to load. Any help is appreciated. -Thanks!!

from openpyxl import Workbook


dashbrd = Workbook()
fp = dashbrd.active
fp.title = 'Sheet Name Goes Here'

fp['A1'] = 'Header'
fp['B1'] = '2nd Header'
fp['C1'] = '3rd Header'
fp['D1'] = '4th Header'
fp['E1'] = '5th Header'
fp['F1'] = 'You get the idea'
fp['G1'] = 'Another Header'
fp['H1'] = 'Blah blah blah'
fp['I1'] = 'Yadda yadda yadda'

dashbrd.save("S:\\folder1\\folder2\\folder3\\MyBook.xlsx")


**************************************************************************************
Traceback (most recent call last):

File "C:\Users\NotaDirtyUser\Documents\Scripts\HeaderTest.py", line 26, in <module>
dashbrd.save("S:\\folder1\\folder2\\folder3\\MyBook.xlsx")
File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\workbook\workbook.py", line 408, in save
save_workbook(self, filename)
File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\writer\excel.py", line 293, in save_workbook
writer.save()
File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\writer\excel.py", line 275, in save
self.write_data()
File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\writer\excel.py", line 75, in write_data
self._write_worksheets()
File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\writer\excel.py", line 215, in _write_worksheets
self.write_worksheet(ws)
File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\writer\excel.py", line 200, in write_worksheet
writer.write()
File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\worksheet\_writer.py", line 354, in write
self.write_top()
File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\worksheet\_writer.py", line 98, in write_top
self.write_properties()
File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\worksheet\_writer.py", line 60, in write_properties
self.xf.send(props.to_tree())
File "C:\ProgramData\Anaconda3\lib\site-packages\openpyxl\worksheet\_writer.py", line 294, in get_stream
xf.write(el)
File "src/lxml/serializer.pxi", line 1652, in lxml.etree._IncrementalFileWriter.write
TypeError: got invalid input value of type <class 'xml.etree.ElementTree.Element'>, expected string or Element

推荐答案

就像我上面说的,昨天我遇到了同样的问题..我在这个链接中找到了解决方案:

Like I said above , yesterday I had the same problem ..I found the solution in this link:

https://python-forum.io/Thread-Need-help-in-understanding-this-particular-Traceback-TypeError

参考此错误:TypeError: got invalid input value of type , expected string or Element

总而言之,解决方案是将 openpyxl 安装到另一个版本:

In summary the solution was to install openpyxl to another version :

pip uninstall openpyxl
pip install openpyxl==3.0.1

这篇关于Openpyxl Workbook.save 函数创建一个损坏且无法打开的 Excel (.xlsx) 文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆