Python通过xlwings自动化Excel-持续更新

一.自动化脚本注意事项

背景:pyautogui基于坐标(x,y)或点击图片进行相关操作,分辨率不同会使坐标(x,y)发生偏移或图像不被识别,导致脚本无法正常使用,注意事项如下。

  • 为保证自动化程序正常运行,尽可能关闭不相关的应用程序窗口。

  • 为保证在指定窗口执行,用getWindowsWithTitle()获取窗口句柄,并 activate()将窗口置顶。

  • 为保证窗口的位置坐标(x,y)不会更改,建议在相同的屏幕分辨率设备上运行脚本。

  • 为保证按钮和菜单的位置不发生变化,建议每次maximize()最大化需要操作的应用程序窗口。

  • 为保证程序在就绪后进行操作,建议每执行一步操作都加入适当的等待时间。

  • 点击按钮或菜单,locateOnScreen()不依赖于坐标(X,Y),更稳定。

  • 尽量用热键hotkey()或者keyDown('tab')键代替点击Click(),比坐标(x,y)更稳定更可靠。

二.鼠标相关-pyautogui

a.获取显示屏的尺寸

#引入pyautogui的包,取别名为pg
import pyautogui as pg

#获取屏幕尺寸
wSize = pg.size()
# 屏幕的宽
print(wSize[0])
print(wSize.width)
# 屏幕高
print(wSize[1])
print(wSize.height)

执行结果

b.获取鼠标位置

通过pyautogui工具获取坐标(X,Y)

#启动pyautogui自带的工具
import pyautogui as pg
pg.mouseInfo()

当鼠标移动到需要点击的按钮或者菜单上,实时看到坐标(X,Y)等信息。

通过图表获取坐标(X,Y)

截取全部刷新按钮,保存到桌面命名为refreshbtn.jpg。

import pyautogui as pg 
try:
    b = pg.locateOnScreen(r'C:\Users\mypc\Desktop\refreshbtn.jpg')
    pg.click((b.left, b.top, b.width, b.height))
except:
    print('未找到图片。')
import pyautogui as pg 
try:
    pg.click(r'C:\Users\mypc\Desktop\refreshbtn.jpg')
except:
    print('未找到图片。')

通过跨界键,点击“全部刷新”

先点击键盘的ALT键,查看快捷键,如图,快捷键为 Y4

键盘先点击ALT键,再点击Y键,再点击数字4,会显示全部刷新按钮的快捷键盘为R

根据上述的实际操作步骤,模拟创建点击代码。加入Sleep休眠代码,是防止python程序运行太快,excel还没有准备好下一步响应,程序就运行结束。因为hotkey('ALT','Y','4'),hotkey('ALT+Y+4')未找到如何实现点击到二级菜单的快捷键的用法,所以示例代码使用了press函数。

import pyautogui as pg
#依次点击ALT
pg.press('ALT')
time.sleep(2)
#依次点击Y
pg.press('Y')
time.sleep(2)
#选择Analysis
#依次点击4
pg.press('4')
time.sleep(2)
#点击全部刷新
#依次点击R
pg.press('R')

运行效果图,正常点击“全部刷新”按钮。

c.获取窗口信息

遍历窗口进行查找

import pyautogui as pg
#获取所有打开的应用窗口
windows = pg.getAllWindows()
#如果当前没有窗口打开,提示异常
if len(windows) == 0:
    raise Exception("窗口未找到")
#遍历窗口
for window in windows:
    #窗口的名字包含关键字时,打印到屏幕上
   
  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值