我真的是服了,一堆复制党到处粘贴,也太肆无忌惮了吧,麻烦尊尊下版权好吗,好歹这也是我辛辛苦苦写出来的...... | |
原封不动的抄,错了的也不知道。真的是搞笑! |
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 wkb_Operate(class_picture1,path_process,8)