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
相关产品推荐
相关产品推荐

