当前位置:
首页 > Python基础教程 >
-
python自动化操作——excel刷新数据并截图发送微信
1 import os 2 import win32gui, win32api, win32con, win32com 3 from win32com.client import Dispatch 4 from PIL import ImageGrab,Image 5 from time import sleep 6 import pyperclip 7 8 # 调用win32api的模拟点击功能实现ctrl+v粘贴快捷键 9 def ctrlV(): 10 win32api.keybd_event(17,0,0,0) #ctrl键位码是17 11 win32api.keybd_event(86,0,0,0) #v键位码是86 12 win32api.keybd_event(86,0,win32con.KEYEVENTF_KEYUP,0) #释放按键 13 win32api.keybd_event(17,0,win32con.KEYEVENTF_KEYUP,0) 14 15 # 调用win32api的模拟点击功能实现alt+s微信发送快捷键 (可以根据自己微信发送快捷键是什么来进行调整) 16 def altS(): 17 win32api.keybd_event(18, 0, 0, 0) #Alt 18 win32api.keybd_event(83,0,0,0) #s 19 win32api.keybd_event(83,0,win32con.KEYEVENTF_KEYUP,0) #释放按键 20 win32api.keybd_event(18,0,win32con.KEYEVENTF_KEYUP,0) 21 22 # 调用win32gui调用桌面窗口,获取指定窗口句柄id,激活窗口 ,向函数传递窗口名称to_weixin 23 def wx_send(to_weixin): 24 for i in range(0,len(to_weixin)): 25 hw = win32gui.FindWindow(None, to_weixin[i]) # 获取窗口句柄 26 win32gui.GetClassName(hw) # 获取窗口classname 27 title = win32gui.GetWindowText(hw) # 获取窗口标题 28 win32gui.GetDlgCtrlID(hw) 29 win32gui.SetForegroundWindow(hw) # 激活窗口 30 sleep(1) 31 ctrlV() 32 sleep(1) 33 altS() 34 35 # 使win32调用excel,刷新数据,并发送微信,refreshall刷新excel的所有数据来源,我的数据来源是pq搭建的链接数据库的模型,也可以搭载爬虫的数据,这样就可以完成自动刷新数据并发送微信的操作,解放双手更多的时间来学习 36 def wkb_Operate(class_picture,wkb_path,sleep_time): 37 os.system('taskkill /IM EXCEL.exe /F') 38 xlapp = win32com.client.gencache.EnsureDispatch('Excel.Application') 39 xlapp.Visible = 1 40 xlapp.DisplayAlerts = False # 关闭警告 41 wkb = xlapp.Workbooks.Open(wkb_path) 42 wkb.RefreshAll() 43 sleep(sleep_time) 44 print('文件【{}】已打开!'.format(wkb_path)) 45 try: 46 for key,vlaue in class_picture.items(): 47 48 to_weixin = class_picture[key]['发送群'] 49 to_sontent = class_picture[key]['发送文本'] 50 sheet_name = class_picture[key]['sheetname'] 51 range_pic = class_picture[key]['图片区域'] 52 53 pyperclip.copy(to_sontent) 54 wx_send(to_weixin) 55 56 sheet_msg = wkb.Worksheets(sheet_name) 57 sheet_msg.Range(range_pic).CopyPicture() 58 wkb.Worksheets.Add().Name = 'picture' 59 sheet_picture = wkb.Worksheets('picture') 60 sleep(1) 61 sheet_picture.Range('A1').Select() 62 sheet_picture.Paste() 63 sleep(1) 64 xlapp.Selection.ShapeRange.Name = 'pic_name' 65 sheet_picture.Shapes('pic_name').Copy() 66 sleep(1) 67 img = ImageGrab.grabclipboard() 68 sleep(1) 69 wx_send(to_weixin) 70 wkb.Worksheets('picture').Delete() 71 print('#粘贴 成功:%s',sheet_name) 72 except BaseException as e: 73 print(e) 74 pass 75 wkb.Save() 76 wkb.Close(1) 77 xlapp.Quit() 78 print('#更新 成功:%s' % wkb_path) 79 pass 80 # *********************主程序,大致方向是,1、调用wkb_Operate刷新函数刷新exce数据,并返回文本数据播报内容, 81 #2、调用wx_send激活微信窗口,3、ctrlV(),altS()模拟粘贴发送功能,4、调用excel_picture函数,截图到剪切板上,并调用wx_send(),ctrlV(),altS()微信发送图片 82 # 微信发送窗口,必须保持一致,按照此名字识别,否则发送不会成功****** 83 84 # 文件路径: 85 path_process = r"C:\Users\1\Desktop\备份\YTshuaxin\hour\2020年新流水监控表.xlsx" # 文件夹路径 86 87 #*********主程序***************# 88 class_picture1 = {'pic1':{'发送群':['管理团队','数据中心'], 89 'sheetname':'日监控', 90 '图片区域':'a1:Al50', 91 '发送文本':'截止到目前的流水和PK情况'}} 92 result_sheet_value = wkb_Operate(class_picture1,path_process,8)
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式