首页 > 解决方案 > 使用win32com.client打开后需要最大化excel窗口

问题描述

我正在win32com.client使用激活功能打开 Excel 工作表并将窗口置于前台。但是窗口以最小化视图打开。我需要最大化它。请帮忙

 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 窗口。谢谢!

标签: pythonexcelwindow

解决方案


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 的对象中类型库中的所有常量。运行上述代码行后,会在操作系统的临时目录中创建一个文件夹。例如,在 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 最大化选项在类常量中为xlMaximized =-4137 # from enum XlWindowState.

此外,在gen_py操作系统的临时目录中创建文件夹后,您可以使用常量win32.Dispatch or win32.DispatchExthen 但如果上述文件夹尚不存在,则必须使用win32.gencache.EnsureDispatch()一次来创建它。


推荐阅读