python pyautogui 模拟键盘鼠标实现excel自动化

最近有一个自动化需求,实现的是:从SAP某些模块导出电子表格到本地,难点是实现excel临时文件的另存为,SAP导出的方式打开一个excel临时文件,然后往里写入数据,写好后需要另存excel临时文件,如果不另存为,SAP就直接关闭了临时文件,导出的数据也就消失了。

吐槽:SAP太不智能了,导出文件功能就直接导出一个文件,让我们另存为最好了,这个模块就非得打开excel然后往里写数据,关键是它不给我们保存,得让我们自己在excel上另存为。

解决办法:用python的pyautogui库,模拟键盘鼠标操作excel临时文件的另存为。

 

import win32gui
import pyautogui

# 获得excel临时文件的句柄
handle = win32gui.FindWindow(None, "工作簿1 - Excel")
# 激活并显示窗口。
win32gui.ShowWindow(handle, win32con.SW_RESTORE) 
win32gui.EnableWindow(handle, True)
win32gui.SetForegroundWindow(handle)
time.sleep(1)
# 鼠标移动到屏幕中央并点击
# 上一块我们激活了窗口,这一块鼠标点击excel,目的还是确认操作excel,也可以不加这一块
screenWidth, screenHeight = pyautogui.size()
pyautogui.moveTo(screenWidth/2, screenHeight/2)
pyautogui.click()
# 点击另存为的快捷键
pyautogui.press('f12')
# 清空初始文件名
pyautogui.press('backspace')
# 输入文件名,注意press是一个键一个键的按,所以要把文件名拆成一个一个字母的
file_name = list("inline2020-03-06.xlsx")
pyautogui.press(file_name)
# 回车,实现保存
pyautogui.press('enter')
# 关闭excel文件
pyautogui.hotkey('ctrl', 'w')
发布了34 篇原创文章 · 获赞 4 · 访问量 3347

猜你喜欢

转载自blog.csdn.net/lvhuike/article/details/104989978