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 wkb_Operate(class_picture1,path_process,8)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM