使用 Pyautogui 实现 Excel 自动化
Posted
技术标签:
【中文标题】使用 Pyautogui 实现 Excel 自动化【英文标题】:Excel Automation Using Pyautogui 【发布时间】:2021-09-28 01:45:42 【问题描述】:我有一个需要刷新 4000 个 excel 文件的 excel 插件。刷新的快捷键是“Alt + s + r + a”。我想运行一个循环,在其中打开 excel 文件,使用快捷方式执行刷新,然后保存 excel 文件。这是我的一个 excel 文件的代码:
import pyautogui
import openpyxl
wb = openpyxl.load_workbook("C:/file.xlsx")
ws = wb['Sheet1']
pyautogui.hotkey('alt', 's', 'r', 'a')
wb.save("C:/file.xlsx")
但是,这只是打开并保存 Excel 文件而不刷新它。对此的任何帮助将不胜感激!
【问题讨论】:
什么是 S('alt'、's'、'r'、'a')? S 在我的电子表格中不可用。你能指点我的菜单栏吗? 它是一个用于事实集的 excel 插件: 我试图截取一张图片,但它不起作用。它是 Excel 中 FactSet 加载项的快捷方式 嘿,这些快捷键只有在打开 excel 工作表时才有效。 有没有办法用python打开,执行快捷方式,然后保存? 【参考方案1】:我用win32com打开excel,把它拉到最上面,开始一个一个按按钮,有1秒的延迟,然后保存并关闭它。
import time
import pyautogui
import win32com.client
from win32gui import SetForegroundWindow
xl = win32com.client.DispatchEx("Excel.Application")
wb = xl.workbooks.open("C:/file.xlsx")
xl.Visible = True
SetForegroundWindow(xl.hwnd)
time.sleep(3)
pyautogui.typewrite(['alt', 's', 'r', 'a'], interval=1)
time.sleep(3)
wb.Close(SaveChanges=1)
xl.Quit()
【讨论】:
以上是关于使用 Pyautogui 实现 Excel 自动化的主要内容,如果未能解决你的问题,请参考以下文章