You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用xlwings.to_pdf将Excel表格以横向模式导出为PDF

xlwings导出PDF设置横向页面的实现方案

该需求完全可以实现。

xlwings自带的to_pdf方法本身没有暴露页面方向配置参数,且默认不会主动读取工作表内提前保存的打印预设,这就是你提前在表格里配置了横向却不生效的原因。只要在导出前通过xlwings开放的底层Excel接口显式设置页面方向,就能导出横向排版的PDF。

具体操作方法

核心是通过工作表对象的api属性调用Excel原生的PageSetup接口,在导出前指定方向参数:

  • 横向对应的参数值为2(对应Excel常量xlLandscape)
  • 纵向对应的参数值为1(对应Excel常量xlPortrait)

基础实现代码

import xlwings as xw

# 打开目标工作簿,定位要导出的工作表
wb = xw.Book(r"你的Excel文件绝对路径.xlsx")
ws = wb.sheets["需要导出的工作表名称"]

# 导出前显式设置页面为横向
ws.api.PageSetup.Orientation = 2

# 执行PDF导出
ws.to_pdf(r"导出PDF的保存路径.pdf")

# 操作完成后关闭工作簿
wb.close()

可选优化配置

如果设置横向后出现内容被缩放、列被拆分到多页的问题,可以追加以下页面适配配置,保证排版符合预期:

# 关闭默认百分比缩放,改用按页面尺寸适配
ws.api.PageSetup.Zoom = False
# 所有列强制适配到1页宽度
ws.api.PageSetup.FitToPagesWide = 1
# 高度不做强制限制,内容超过一页时自动分页
ws.api.PageSetup.FitToPagesTall = 0

避免修改原文件配置的写法

如果不想改动原Excel文件里保存的打印设置,可以提前记录原有方向参数,导出完成后还原即可:

# 记录原页面方向配置
original_orient = ws.api.PageSetup.Orientation

# 设置横向并导出
ws.api.PageSetup.Orientation = 2
ws.to_pdf(r"导出PDF的保存路径.pdf")

# 还原原配置后关闭文件
ws.api.PageSetup.Orientation = original_orient
wb.close(save=True)

内容的提问来源于stack exchange,提问作者geoffreyphipps

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 13:21:21