百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

Python自动化办公,告别加班苦海!一键解决工资条发放大难题!

off999 2024-10-01 13:57 37 浏览 0 评论

你是否还在为每天每月的重复性工作而烦恼?是否还在为无法提前一张张微信截图的信息、一次次的复制粘贴而焦头烂额?Python自动化办公神器,一键解决你的办公难题,告别加班苦海,轻松逆袭职场巅峰!


办公需求

我有一个好朋友,在一家国企的分公司担任人事一职。每个月,总公司的人事都会将分公司人员的工资表格通过微信截图的形式发给她。她需要一张张打开图片,对照着内容手动输入到Excel表格中,然后再将这些数据制作成工资条,通过邮件发送给相关人员。整个过程繁琐至极,每个月都需要耗费两天的时间才能完成。对于领导以截图形式发送的方式也是敢怒不敢言。

痛点分析:

效率低下:手动输入和制作工资条的过程耗时耗力,效率低下。

容易出错:由于手动操作,难免会出现输入错误或遗漏的情况。

工作量大:随着公司人员的增加,工资条的数量也在不断增加,工作负担越来越重。

解决方案:

针对以上痛点,我利用Python自动化办公技术,为朋友量身定制了一个解决方案。

第一步:OCR算法自动提取工资表格

利用OCR(光学字符识别)算法,我们可以轻松地将微信截图中的工资表格自动提取到Excel中。这个过程只需要将图片复制到指定文件夹,程序会自动识别并转换。

python代码

from PIL import Image
import pytesseract
from openpyxl import Workbook


def load_image(image_path):
    image = Image.open(image_path)
    return image


def convert_to_grayscale(image):
    return image.convert("L")


def extract_text(image):
    return pytesseract.image_to_string(image)


def extract_table_data(text):
    rows = text.strip().split("\n")
    table_data = [row.split("\t") for row in rows]
    return table_data


def save_as_excel(table_data, output_path):
    workbook = Workbook()
    sheet = workbook.active


    for row_index, row_data in enumerate(table_data, start=1):
        for column_index, cell_data in enumerate(row_data, start=1):
            sheet.cell(row=row_index, column=column_index, value=cell_data)


    workbook.save(output_path)


# 调用示例
image_path = "table_image.jpg"
output_path = "table_data.xlsx"


image = load_image(image_path)
grayscale_image = convert_to_grayscale(image)
text = extract_text(grayscale_image)
table_data = extract_table_data(text)
save_as_excel(table_data, output_path)

可以看到用这种方式提取到的信息不仅没有错误,而且还完美的保持了表格的结构

总之,Python自动化工具为我们提供了一种高效、精准的方法,可以一键提取图片中的表格数据,并将其转换为可编辑的Excel格式。它不仅可以解决我们手动输入表格数据的繁琐问题,还可以保证数据的准确性和完整性。

第二步:自动制作工资条

在成功将工资表格导入Excel后,程序会自动根据预设的格式将表格转换成工资条形式。这样,原本需要手动一条一条复制粘贴的工作,现在只需一秒钟就能完成。

python代码

import pandas as pd
# 导入Excel写入库
from openpyxl import Workbook
import os


df = pd.read_excel('employee_data.xlsx')
print(df)
os.makedirs("工资条",exist_ok=True)
for i,row in df.iterrows():
    wb = Workbook()
    ws = wb.active
    ws.append(list(df.columns))
    ws.append(list(row))
    file_name = f"./工资条/{row['姓名']}_工资条.xlsx"
    wb.save(filename=file_name)


print("工资条生成完毕")


第三步:根据人名自动发送邮件

最后,程序会根据工资表中的员工姓名和邮箱信息,自动将工资条以邮件的形式发送给对应的人员。这样,不仅省去了手动发送邮件的繁琐过程,还能确保工资条准确无误地发送到每个员工的邮箱中。

import pandas as pd
import datetime
import smtplib
# 处理邮件内容的库,email.mine
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
import logging
import os




logging.basicConfig(filename='E:\code\Plan_m\log.log', level=logging.INFO,filemode = 'a', format = '【%(asctime)s】 【%(levelname)s】 >>>  %(message)s', datefmt = '%Y-%m-%d %H:%M')




# 邮箱属性配置
def send_email(text_msg): 
    # 邮箱服务端
    mailserver = 'smtp.163.com'
    # 发件人-填写自己的邮箱
    userName_SendMail = 'zdy15921159716@163.com'
    # 邮箱发件授权码-为发件人生成的授权码,详见下文
    userName_AuthCode = 'BOEFGGZHRAHEXGRN'
    # 定义邮件的接收者-我随便写的,若收件人较多,可用列表表示
    per_email = email_dict.get(text_msg.get("姓名","None"),"None")
    name = text_msg.get("姓名","None")
    print(per_email)
    received_mail = ['young@example.com'] # 加入祖总 刘总 张总邮箱
    # final_received_mail = received_mail+per_email
    # print(final_received_mail)
    # 发送一封简单的邮件,处理邮件内容
    content = f'本月工资条请查收'
    print(content)
    # 纯文本形式的邮件内容的定义,通过MIMEText进行操作,plain为默认的文本的展示形式
    email = MIMEMultipart()
    email['Subject'] = '工资条'  # 定义邮件主题
    email['From'] = "人事部"  # 发件人
    email['To'] = ','.join(received_mail)  # 收件人(可以添加多个,若只有一个收件人,可直接写邮箱号)
    filename = f'{name}_工资条.xlsx'
    with open(filename, 'rb') as attachment:
        part = MIMEApplication(
        attachment.read(),
        Name=filename
    )
      part['Content-Disposition'] = f'attachment; filename="{filename}"'
      email.attach(part)


    # 发送邮件


    # QQ邮箱的端口号是465,其他邮箱的端口号可自行百度,非QQ邮箱,一般使用SMTP即可,不需要有SSL
    smtp = smtplib.SMTP_SSL(mailserver, port=465)
    smtp.login(userName_SendMail, userName_AuthCode)
    smtp.sendmail(userName_SendMail, ','.join(received_mail), email.as_string())


    smtp.quit()
    logging.info('恭喜,邮件发送成功了')




# data = pd.read_excel("E:\Plan_m\批量样品跟进计划表.xlsx")
# # data['下单时间'] = pd.to_datetime(data['下单时间'])

163邮箱安全码设置【python代码中的密码使用这个而不是邮箱密码】

效果展示

经过实施这个解决方案后,朋友的工作负担得到了极大的减轻。现在,她每个月只需花费一秒钟的时间将图片复制到指定文件夹中,剩下的工作就全部交给了Python自动化办公神器。而且,由于程序的高度自动化和准确性,再也不用担心出现错误或遗漏的情况了。

结语

在这个信息化、智能化的时代里,Python自动化办公技术已经成为了我们提高工作效率、减轻工作负担的得力助手。如果你还在为繁琐的办公任务而烦恼不已的话,不妨尝试一下Python自动化办公神器吧!相信它一定会给你带来意想不到的惊喜和便利!



相关推荐

下载原版xp系统光盘(xp光盘系统安装教程怎么安装)

方法步骤步骤如下:1、首先打开计算机,在电脑光驱上放入XP光盘,启动电脑后不停按F12、F11、Esc等启动热键,在弹出的启动菜单中选择DVD选项,回车。2、进入光盘主菜单,按数字2或点击选项2运行w...

windows7中文版下载安装(windows7安装包下载)

谢邀,如果你戳设置-时间和语言-区域和语言,右边的语言提示“只允许使用一种语言包”,那么你的系统就是家庭中文版。家庭中文版限定系统界面只能使用简体中文显示,其他功能则与普通家庭版没有区别,也可以使用其...

win7开机按f2怎么重装系统(win7开机按f12怎么重装系统)

开机或重启时,在进入Windows前按F2进入BIOS。  ←→移动到第三个好像是BOOT。  然后将EXTENELBOOT选项设置为ENABLE  最后按F5将第一启动项目设置为EXTENEL...

win10驱动管理(win10驱动程序)
win10驱动管理(win10驱动程序)

win10由于联网后会自动安装驱动,如果自动安装驱动没出现问题,即可视为最佳驱动,若出现问题,卸载出问题的驱动,然后去查自己主板型号,在主板供应商官网下载对应驱动即是最佳01Windows10驱动更新调整当前当你插入连接即插即用(Pn...

2025-12-29 05:51 off999

手机上怎么找qq邮箱登录(用手机怎么找到qq邮箱)

入口是“联系人”选项卡。qq邮箱手机在QQ主菜单中选择下方的“联系人”选项卡;3、在“联系人”中选取“公众号”选项卡;4、在公众号中菜单中找到或搜索“QQ邮箱提醒”,点击进入;5、点击“进入邮箱”;6...

amd显卡控制面板

AMD显卡控制面板是用来管理你的AMD显卡的,可以在控制面板中进行设置一些简单的调整,来提升显卡性能和效果。1、先打开AMD控制面板。2、打开“垂直同步(V-SYNC)”功能,可调整细节,改善影像流畅...

win10老是未响应卡死(window10总是未响应)

具体方法:1、如果win10中的应用程序出现不响应的情况,应该是应用程序加载失败了。可以通过重置方法来解决win10应用程序无响应。2、登录win10系统,用管理员身份运行Powershell(可在C...

usb安装系统步骤(USB安装系统步骤)

1.准备一张U盘,将联想官网下载的系统镜像文件复制到U盘中;2.将U盘插入联想S41U电脑,重启电脑,按F12进入BIOS设置,将U盘设置为启动项;3.重启电脑,进入U盘安装界面,按提示操作,完成系统...

win98安装教程(win98iso怎么安装)

如何安装windows98  一、具体安装步骤  备份好重要文件之后,就可以安装windows98了。  第一步:启动安装程序。  用户如果原来已安装了windows95/97/98,现在拟对其进行升...

雨林木风win7安装(雨林木风win732位安装教程)

  安装步骤如下:  1、光盘放入光驱,复制光盘上的win7.gho和安装系统.exe到硬盘非C盘的文件夹;(gho文件名可以是其他名字,后缀为gho,体积最大的就是。)  2、双击安装系统.exe;...

win10解绑管理员账户(win10管理员账户怎么取消开机密码)

要解除Windows10电脑上的管理员权限,您需要进行以下操作:1.打开“控制面板”:右键单击“开始”按钮,然后选择“控制面板”。2.进入“用户账户”:在控制面板中,选择“用户账户”。3.点击...

win10家庭版没有组策略编辑器

Win10组策略编辑器找不到怎么办  解决方法  一、win10系统版本本身不提供组策略的功能。  1、运行gpedit.msc直接提示找到gpedit.msc(组策略)。  2、运行MMC,在“添加...

tplogin管理员登录入口(tplogin重新设置密码)

tplogin.cn是新版tplink路由器的登录地址(管理页面地址),在浏览器中输入tplogin.cn,就可以打开tplink路由器的管理页面(登录页面)。具体的登录方法如下:1、打开电脑上的浏...

psp模拟器怎么导入游戏(psp模拟器怎么导入游戏 Vivo手机)

方法如下:1、打开能操作文件的助手软件,用pp链接后点击左下文件,然后点常用目录下的程序用户,会出现ppsspp的文件夹。2、打开ppsspp文件夹,会出来四个选项文件夹,第一个进去后是psp文件夹,...

电脑系统怎样升级(电脑系统怎么升级)

电脑系统升级方法步骤,1、打开电脑,点击电脑左下角的开始菜单,在弹出的菜单选项中选择“控制面板”。2、点击“开始”,点击“控制面板”3、在控制面板中,点击“系统和安全”。4、点击启用或禁用自动更新。5...

取消回复欢迎 发表评论: