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

Python使用win32com打印Excel工作表时如何设置单面打印

解决方法

通过Excel VBA暴露的PageSetup对象的Duplex属性即可指定打印的单双面模式,在调用PrintOut前给对应工作表设置该属性即可,修改后的代码如下:

import os, win32com.client

o = win32com.client.Dispatch('Excel.Application')
o.Visible = True
wb = o.Workbooks.Open(path)
target_sheets = wb.Worksheets([1,2,3])
# 为所有待打印工作表设置单面打印
for ws in target_sheets:
    # Duplex设为1对应单面打印,对应常量名为xlDuplexSimplex
    ws.PageSetup.Duplex = 1
target_sheets.PrintOut()

# 打印完成后释放资源,避免Excel进程残留
wb.Close(SaveChanges=False) # 不需要保存打印配置就设为False,需要保留设为True
o.Quit()

补充说明

  • Duplex属性对应三个可选值:
    • 1(xlDuplexSimplex):单面打印
    • 2(xlDuplexHorizontal):双面打印,沿长边翻转
    • 3(xlDuplexVertical):双面打印,沿短边翻转
  • 若修改配置后仍默认双面打印,先检查系统中当前打印机的默认设置是否强制开启了双面打印,部分打印机的硬件配置优先级会高于软件端设置,需要先在系统打印机设置中关闭强制双面选项。
  • 若环境中已经导入了Excel常量库,也可以用常量写法替代硬编码数值:ws.PageSetup.Duplex = win32com.client.constants.xlDuplexSimplex,效果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:24:05