从文档中尝试此示例
writer = ExcelWriter('output.xlsx')
df1.to_excel(writer,'Sheet1')
df2.to_excel(writer,'Sheet2')
writer.save()
Run Code Online (Sandbox Code Playgroud)
我发现我无法写入带有错误的excel文件
TypeError: copy() got an unexpected keyword argument 'font'
Run Code Online (Sandbox Code Playgroud)
我在Mac专业版上使用Panda 0.16.
编辑:写入xls文件工作得很好.我不坚持使用xlsx文件,只是想知道为什么它不起作用.
pba*_*mba 11
根据他们的文档,熊猫取决于
在openpyxl 1.6.1或更高版本,但低于2.0.0
最后一个openpyxl版本低于2.0.0版本1.8.6,您应该只删除当前的openpyxl版本并运行:
pip install openpyxl==1.8.6
Run Code Online (Sandbox Code Playgroud)
如果您使用pip,或找到相同的方法来安装此特定版本.
如果你不关心标题是否有它们的边框和粗体字,并且你不想限制openpyxl的版本,最快的方法是覆盖header_style字典None.
如果还有日期或日期时间,则还必须将工作簿date和datetime格式明确设置为None:
from datetime import datetime
import pandas as pd
pd.core.format.header_style = None # <--- Workaround for header formatting
dt = datetime.now()
d = datetime.date(datetime.now())
df1 = pd.DataFrame([{'c1': 'alpha', 'c2': 1}, {'c1': 'beta', 'c2': 2}])
df2 = pd.DataFrame([{'c1': dt, 'c2': d}, {'c1': dt, 'c2': d}])
with pd.ExcelWriter('output.xlsx') as writer:
writer.date_format = None # <--- Workaround for date formatting
writer.datetime_format = None # <--- this one for datetime
df1.to_excel(writer,'Sheet1')
df2.to_excel(writer,'Sheet2')
Run Code Online (Sandbox Code Playgroud)
不清楚为什么关键字参数永远不会通过openpyxl弃用包装器......但它们没有.此外,如果您要格式化任何其他单元格,请使用新的openpyxl api.
顺便提一下,如果你有Anaconda,所有这些问题都会消失.
要快速解决方案,请更换此
xcell.style = xcell.style.copy(**style_kwargs)
Run Code Online (Sandbox Code Playgroud)
同
pass
Run Code Online (Sandbox Code Playgroud)
在pandas/io/excel.py第778行.
openpyxl升级了他们的api和pandas也需要更新以支持openpyxl.
| 归档时间: |
|
| 查看次数: |
9687 次 |
| 最近记录: |