使用python在不同窗口中打开同一个excel文件

xmq68pz9  于 2022-12-05  发布在  Python
关注(0)|答案(1)|浏览(162)

我对python很陌生。我目前正在尝试打开一个excel文件(Excel 2013)的相同示例,并使用python移动打开的窗口,但找不到任何关于如何操作的信息。手动操作时,我只需点击“视图”选项卡上的“新窗口”。如果我尝试使用子进程打开它,它将连续打开和关闭窗口。您有什么建议吗?提前感谢。
我的当前代码:

import ctypes
import subprocess
import time 
import sys
from win32.win32gui import FindWindow, MoveWindow, GetForegroundWindow

user32 = ctypes.windll.user32
x = user32.GetSystemMetrics(78)
y = user32.GetSystemMetrics(79)

p1 = subprocess.Popen(["C:\\Program Files (x86)\\Microsoft Office\\Office15\\EXCEL.EXE", "C:\\Users\\user\\Desktop\\python\\TestBook1.xlsx"])
time.sleep(1)
window_handle1 = GetForegroundWindow()
MoveWindow(window_handle1, 0, 0, int(2/3*x), int(0.5*y), True)

p2 = subprocess.Popen(["C:\\Program Files (x86)\\Microsoft Office\\Office15\\EXCEL.EXE","C:\\Users\\user\\Desktop\\python\\TestBook1.xlsx"])
time.sleep(1)
window_handle2 = GetForegroundWindow()
MoveWindow(window_handle2, 0, int(0.5*y), int(2/3*x), int(0.5*y), True)

p3 = subprocess.Popen(["C:\\Program Files (x86)\\Microsoft Office\\Office15\\EXCEL.EXE", "C:\\Users\\user\\Desktop\\python\\TestBook1.xlsx"])
time.sleep(1)
window_handle3 = GetForegroundWindow()
MoveWindow(window_handle3, int(2/3*x), 0, int(1/3*x), int(y), True)

(抱歉我的坏编码提前)

92dk7w1h

92dk7w1h1#

我不知道python,所以很可能是垃圾代码!
使用Excel COM对象,您可以通过编程方式访问“新窗口”(以及其他功能)。
Workbook.NewWindow返回的Window对象具有hWnd属性(这可能是MoveWindow所需的属性),并且/或者还有一个TopLeft属性,您也可以使用它们来移动窗口。

import win32com
import win32com.client

app = win32com.client.Dispatch("Excel.application")
workbook = app.Workbooks.Open("your workbook")
newwindow = workbook.NewWindow()
MoveWindow(newwindow.hwnd,.......)

相关问题