python - 使用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 窗口。谢谢!
解决方案
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.DispatchEx
then 但如果上述文件夹尚不存在,则必须使用win32.gencache.EnsureDispatch()
一次来创建它。