开启左侧

python读取Excel定时向企微群发送每日值班信息

[复制链接]
在线会员 ZzijUtcLym 发表于 2025-2-7 12:43:09 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
媒介

近来要写一个python剧本完毕读与正在线文档上的实质,并天天按时收收此中的实质到企微机械人,完毕天天值班职员按时提醒。根本思路是使用BeautifulSoup库将正在线文档按时下载到当地后,截至处置;但是陷入的成就是没法主动化登录相企微文档、腾讯正在线文档,没有登录便没法下载!何如尔太菜,tx的考证又太多。。。厥后发明能够使用webdrive,可是这类情况下主动登录只可正在图形化界里体系中。。。
仍是使用当地文献吧,每月朝效劳器上传一下便OK了,目前找到佳的完毕办法补。
完毕

主要完毕二个功用,一是朝此中一个群里收收来日诰日值班职员战来日诰日值班职员并@相干职员,两是朝另外一个群收收二个值班人并@
既然多个使用便写个class
使用的Excel表格格局以下:

python读与Excel按时背企微群收收逐日值班疑息-1.jpg


centos7上装置python3

centos7上装置python3
python代码
  1. from openpyxl import Workbook,load_workbook
  2. import datetime
  3. import requests
  4. classdutyCall:def__init__(self,mobile_number,duty_filename,webhook):
  5.         self.mobile_number = mobile_number #人名-号码获得表
  6.         self.mobile_number_list =[]#需要@的人脚机号汇合
  7.         self.duty_filename = duty_filename #读与的Excel文献职位
  8.         self.webhook =webhook  #企微机械人地点defhaveOne(self,name):#检测该事变值班可否为空或者——if name =="——"or name =="None":return0else:return1defname2mobileNumber(self,name):#将值班人姓名转移为其脚机号 用于@# mobile_number_list =[]while name.find(',')>-1:
  9.             name = name.replace(',',',')while name.find('(')>-1:
  10.             name = name.replace('(','(')if name.find(',')>-1:
  11.             onename = name.split(',')else:
  12.             namestr = name
  13.             onename =[]
  14.             onename.append(str(namestr))for one in onename:if one.find('(')>-1:
  15.                 name_real = one[0:one.find('(')]else:
  16.                 name_real = one
  17.             # print(name_real)if self.number2(str(self.mobile_number[name_real]))==0:
  18.                 self.mobile_number_list.append(str(self.mobile_number[name_real]))#return self.mobile_number_listdefnumber2(self, number):# 鉴别@号码表可否已经有if self.mobile_number_list ==[]:return0for n in self.mobile_number_list:if n == number:return1return0defto_robot(self,message):#施行收收疑息给机械人
  19.         header ="Content-Type: application/json"
  20.         data ={"msgtype":"text","text":{"content": message,"mentioned_mobile_list": self.mobile_number_list
  21.             }}print(self.mobile_number_list)
  22.         r = requests.post(url=self.webhook, json=data)print(r.text)defdothings(self):#截至读与Excel,并挪用收收函数 收收
  23.         wb = load_workbook(self.duty_filename)
  24.         sheet = wb['Sheet1']
  25.         rows = sheet.max_row
  26.         cols = sheet.max_column
  27.         # print(cols)
  28.         date =str(datetime.datetime.now())[0:10]# 截与时间 xxxx-xx-xx# date = "2023-03-09"print(date)
  29.         today ='**旧日值班:**'
  30.         to妹妹 ='**嫡值班:**'for i inrange(1, rows +1):if date ==str(sheet.cell(i,1).value)[0:10]:# 匹配当日 止for x inrange(2, cols +1):# 该日每一列遍历if self.haveOne(str(sheet.cell(i, x).value)):# 检测目前列旧日可否有人
  31.                         today = today +"\n"+str(sheet.cell(2, x).value)+":"+str(sheet.cell(i, x).value)
  32.                         self.name2mobileNumber(str(sheet.cell(i, x).value))for y inrange(2, cols +1):if self.haveOne(str(sheet.cell(i +1, y).value)):
  33.                         to妹妹 = to妹妹 +"\n"+str(sheet.cell(2, y).value)+":"+str(sheet.cell(i +1, y).value)print(today +"\n"+ to妹妹)
  34.         text = today +"\n"+ to妹妹
  35.         self.to_robot(text)defdothing_g4(self):#共dothings 但是只收收多少天且前二列的疑息
  36.         wb = load_workbook(self.duty_filename)
  37.         sheet = wb['Sheet1']
  38.         rows = sheet.max_row
  39.         cols = sheet.max_column
  40.         # print(cols)
  41.         date =str(datetime.datetime.now())[0:10]# 截与时间 xxxx-xx-xx# date = "2023-03-09"print(date)
  42.         today ='**旧日值班:**'for i inrange(1, rows +1):if date ==str(sheet.cell(i,1).value)[0:10]:# 匹配当日 止for x inrange(2,4):# 该日每一列遍历if self.haveOne(str(sheet.cell(i, x).value)):# 检测目前列旧日可否有人
  43.                         today = today +"\n"+str(sheet.cell(2, x).value)+":"+str(sheet.cell(i, x).value)
  44.                         self.name2mobileNumber(str(sheet.cell(i, x).value))print(today )
  45.         text = today
  46.         self.to_robot(text)#企微机械人webhook
  47. webhookyw ="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxx-xxx-xxxx-xxxxxxxxxxx"# webhookyw="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxx"#webhookg4="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx-xxxxx-4804-xxxx-xxxxxxxxxx"
  48. mobile_number ={#比较表人名-脚机号'aa':'11111111','bbb':'22222','cc':'3333','dd':'44','ee':'55','ff':'66','gg':'77','hh':'88'}
  49. duty_filename ='C:/Users/Administrator/Desktop/值班.xlsx'#值班execl地点#duty_filename = '/zihban/值班.xlsx'
  50. dutyCalleryw =dutyCall(mobile_number=mobile_number,duty_filename=duty_filename,webhook=webhookyw)
  51. dutyCalleryw.dothings()
  52. dutyCallerg4 =dutyCall(mobile_number=mobile_number,duty_filename=duty_filename,webhook=webhookg4)
  53. dutyCallerg4.dothing_g4()
复造代码
按时施行

crontab -e创立 按时任务

python读与Excel按时背企微群收收逐日值班疑息-2.jpg

增加任务
  1.   01  09  *  *  * python3 /zihban/fin.py &>> /zihban/zbpy.log
  2. #天天9:01 收收消息
复造代码
您需要登录后才可以回帖 登录 | 立即注册 qq_login

本版积分规则

发布主题
阅读排行更多+
用专业创造成效
400-778-7781
周一至周五 9:00-18:00
意见反馈:server@mailiao.group
紧急联系:181-67184787
ftqrcode

扫一扫关注我们

Powered by 职贝云数A新零售门户 X3.5© 2004-2025 职贝云数 Inc.( 蜀ICP备2024104722号 )