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")

关键点:

  1. \n就是换行符,跟普通字符串一样用
  2. &P是当前页码,&N是总页数,&D是日期,这些是Excel预定义代码
  3. 可以分别设置左中右(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

回到顶部