Python中如何使用openpyxl设置Excel页眉页脚文字并实现换行?
最近在学习用 openpyxl 读写 excel,发现在设置页眉页脚的时候,只输出单行,比如:
from openpyxl import load_workbook
wb = load_workbook('test.xlsx')
sheet = wb.get_sheet_by_name('sheet1')
sheet.oddFooter.left.text = 'A\nB'
最终在打印预览中的页眉页脚会显示
A_x000a_B
并不会输出想要的换行效果,看了官方文档也没有对此进行说明。
想问一下有没学习过这个模块的大佬或者懂的 excel 的老铁来帮忙解答一下
Python中如何使用openpyxl设置Excel页眉页脚文字并实现换行?
11 回复
在openpyxl里设置页眉页脚换行可以直接用\n。不过要注意,openpyxl对页眉页脚的支持有限,主要依赖底层lxml库。
这是完整示例:
from openpyxl import Workbook
from openpyxl.worksheet.header_footer import HeaderFooter
wb = Workbook()
ws = wb.active
# 创建HeaderFooter对象
hf = HeaderFooter()
# 设置页眉 - 使用\n换行
hf.differentFirst = False # 首页不同设为False
hf.oddHeader.center.text = "第一行标题\n第二行内容\n第三行信息"
hf.oddFooter.center.text = "页码: &P\n总页数: &N\n日期: &D"
# 应用到工作表
ws.header_footer = hf
# 保存文件
wb.save("header_footer_example.xlsx")
关键点:
\n就是换行符,跟普通字符串一样用&P是当前页码,&N是总页数,&D是日期,这些是Excel预定义代码- 可以分别设置左中右(left/center/right)和奇偶页(odd/even)
如果遇到格式不生效的情况,可能是Excel版本问题,建议用最新版Excel打开。
简单说就是:用\n换行,注意特殊代码的用法。
转义了也不行,"\r\n"也不行,你按照我的代码可以试一下,保存出来的 excel 在打印预览中不会显示换行
我试了下,没问题。
在我这里是换行的,另外你运行的时候没提醒你有个函数被过时了吗
你用的是哪个版本呢,哪个平台,win 下吗
vim 写的,是在 linux 平台下,你是不是用的 windows
Windows 你可以试试把字符 encode 成 UTF8
多谢,是我用的 WPS 的问题,office 显示就没问题
但是又发现,页眉页脚无法设置图片,查了下文档,好像无解…
Mac 下,python 3.7.3, openpyxl 2.6.2, MS Excel 16.25


