使用win32com.client打开后需要最大化excel窗口

时间:2019-07-01 19:58:57

标签: python excel window

我正在使用win32com.client打开excel工作表,并使用Activate函数将窗口置于前台。但是窗口以最小化视图打开。我需要最大化它。请帮助

 import win32com.client as win32

 excel = win32.gencache.EnsureDispatch('Excel.Application')
 wb1 = excel.Workbooks.Open(r'C:\\blp\\1700.xlsx')
 wb2 = excel.Workbooks.Open(r'C:\\blp\\Book1.xlsx')
 excel.Visible = True

 wb1.Activate()

请让我知道如何最大化Excel窗口。谢谢!

1 个答案:

答案 0 :(得分:2)

import win32com.client as win32

excel = win32.gencache.EnsureDispatch('Excel.Application')
wb = excel.Workbooks.Open(r'Path...\YourFile.xlsx')
excel.Visible = 1
excel.WindowState = win32.constants.xlMaximized  # this works for me 

此外,当您在字符串前缀r''中使用前缀时,不需要转义斜杠。

更新:如果要查看可用的COM常量,则需要使用win32.gencache.EnsureDispatch()一次,因为它将生成一个文件,其中包含来自类型库中所有常量的文件。名为win32com.clients.constants的对象。运行上面的代码行之后,将在操作系统的temp目录中创建一个文件夹。例如,在Windows上,临时目录位于C:\Users\'UserName'\AppData\Local\Temp。那里将有一个名为gen_py的文件夹。在我的系统上,您可以使用的可用常量位于gen_py\3.7\00020813-0000-0000-C000-000000000046x0x1x7\__init__.py中。请注意,文件夹3.7是当前使用的Python版本,因此该文件夹可能因您而异,并且以下以数字命名的文件夹也可能不同。打开__init__.py文件后,可以在名为constants的类中找到可用的常量。

这就是我实际上回答您的问题的方式。 Excel Maximize选项在类常量中为xlMaximized =-4137 # from enum XlWindowState

此外,在操作系统的temp目录中创建gen_py文件夹之后,您可以将常量与win32.Dispatch or win32.DispatchEx一起使用,但是,如果上述文件夹尚不存在,则必须使用{{ 1}}来创建它。