使用COM界面打印Excel工作表

Ale*_*x S 5 python excel pywin32 win32com

我用编程方式在python中用xlwt编写了一堆Excel工作表.这一切都很好,但现在我需要将它们全部转换为pdf.我一直在尝试使用pywin32和com接口.这样做可以让我有点接近:

import win32com.client
o = win32com.client.Dispatch("Excel.Application")
o.Visible = 1
wb = o.Workbooks.Open('foo.xls')
ws = wb.Worksheets[1]
ws.printout()
Run Code Online (Sandbox Code Playgroud)

但不幸的是,当我这样做时,它弹出adobe打印机屏幕,询问我要保存pdf的路径,如果我必须输入或者单击确定每个页面,它会以编程方式执行它的目的.有没有什么办法可以在python代码中输入这个路径而不是手动?是否有更好的方法将这些工作簿中的每个工作表转换为pdf?非常感谢,Alex

Rac*_*ger 4

而不是使用该PrintOut方法,使用ExportAsFixedFormat.您可以指定pdf格式并提供文件名.试试这个:

ws.ExportAsFixedFormat(0, 'c:\users\alex\foo.pdf')
Run Code Online (Sandbox Code Playgroud)