看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
使用 pandas 处理完 Excel 导出时,想增加相关的样式怎么办呢?有人说 pandas 的 Style 对象很方便,但是它对于非 CSS 的原生 Excel 支持并不生效。本例我们来看看如何解决。
我们构造 DataFrame 数据如下:
import pandas as pd
df = pd.DataFrame({'A': [113.4, 2224.3252],
'B': [564.09, 2323.5612]})
df
'''
A B
0 113.4000 564.0900
1 2224.3252 2323.5612
'''
想在导出 Excel 时,增加以下格式:
接下来我们分析一下,如何解决。
由于 Style 对象无法做好支持,我们使用 pd.ExcelWriter() 构造一个数据表并保存,并利用对应引擎的格式设置方法来完成格式操作。
以下为我们的全部代码:
with pd.ExcelWriter('453535-wqw.xlsx') as writer:
df.to_excel(writer, sheet_name='Sheet1', index=False)
workbook = writer.book
worksheet = writer.sheets['Sheet1']
worksheet.set_zoom(200) # 界面放大比例显示
format1 = workbook.add_format({'num_format': '#,##0.00',
'align': 'right'})
worksheet.set_column('A:B', 20, format1)
使用了 pd.ExcelWriter()
的上下文管理器特性,对于 xlsx 文件它使用的是 xlsxwriter 引擎(三方库,需要安装),否则会报类似以下的错误:
AttributeError: 'Worksheet' object has no attribute 'set_zoom'
在后边我们使用 xlsxwriter 的相关方法设置数据格式。
导出 Excel 截图结果为:
这样就得到了最终的效果。
(完)
更新时间:2024-08-18 16:01:33 标签:pandas excel 千分位 小数 对齐