zoukankan      html  css  js  c++  java
  • 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)
    志同道合一起学习,欢迎加入QQ群:878749917
  • 相关阅读:
    叶树:任总喊你回家吃饭 (zz)
    一个小员工如何让一家大银行一夕倒闭(附几则)
    精妙SQL语句收集
    降温了 降温了
    東京タワー初めてphoto
    圣诞气氛photo
    初冬071110photo
    超级郁闷的一天
    eveningplan
    KOF怀念ING
  • 原文地址:https://www.cnblogs.com/gujianjian/p/12697514.html
Copyright © 2011-2022 走看看