Python:使用win32com(或其他模块)调整Excel文件的打印属性

问题描述 投票:1回答:1

我需要打印一个excel工作表,并需要使用某种python脚本来完成它。到目前为止,我已经在脚本中使用了win32com,并使用以下代码完成了打印输出:

import win32com.client

o = win32com.client.Dispatch("Excel.Application")
o.Visible = 1
wb = o.Workbooks.Open(r'C:\test.xlsx')
ws = wb.Worksheets[1]
ws.PrintOut()

不幸的是,在我实际打印Excel工作表之前,我需要调整此工作表/文件的打印设置:将格式更改为横向并更改为小/窄边距。

我发现此网站可能包含我需要的内容:https://msdn.microsoft.com/en-us/library/aa220363(v=office.11).aspx

遗憾的是,到目前为止,我还无法更改所需的打印属性。我希望有人可以帮助我,或者至少让我朝正确的方向前进。

python excel excel-vba com win32com vba
1个回答
0
投票

您可以使用PageSetup方法(https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2003/aa173425%28v%3doffice.11%29)编辑打印设置。似乎没有在excel应用程序中通常看到的窄/宽/普通边距设置,但是您可以自己指定边距。

ws.PageSetup.Zoom = False
ws.PageSetup.FitToPagesTall = 1
ws.PageSetup.FitToPagesWide = 1
ws.PageSetup.PrintArea = print_area
ws.PageSetup.LeftMargin = 25
ws.PageSetup.RightMargin = 25
ws.PageSetup.TopMargin = 50
ws.PageSetup.BottomMargin = 50
wb.ExportAsFixedFormat(0, path_to_pdf)

我正在使用ExportAsFixedFormat,但我想这也应该适用于PrintOut()。

参考:Print chosen worksheets in excel files to pdf in python

© www.soinside.com 2019 - 2024. All rights reserved.