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



我对python很陌生。我目前正试图打开一个Excel文件(Excel 2013)的相同实例,并使用python移动打开的窗口,但找不到任何有关如何做到这一点的信息。手动点击"新建窗口"在"调整;选项卡。如果我尝试用subprocess打开它,它将依次打开和关闭窗口。你有什么建议吗?提前谢谢。

我的当前代码:

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)

(抱歉我提前写错了)

我不懂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,.......)

相关内容

最新更新