那必须得分享一波我逃离996的自动办公大法了!本篇内容超实用!墙裂建议收藏!
平时在公司做数据分析的时候, 也会用python做些办公自动化的工作, 别人3小时的活,我们已经可以3分钟完成了 。技术才是第一生产力 !下面就给大家介绍几个我用到的办公自动化技巧:
1、Python实现Excel办公自动化
在工作中难免遇到统计表格,汇总表格,数据查重等。可根据自己的需求进行更改,代码书写的初衷主要是想解法双手,摆脱重复机械的Ctrl+C,ctrl+V,完成数据的批量替换,查找不同表格的相同位置,用代码的1秒钟代替你一小时的复制粘贴。
1.1 批量新建Excel文件
import xlwings as xw
app=xw.App(visible=True,add_book=False)
for grade in ["部门1","部门2","部门3,"部门4"]:
workbook=app.books.add()
workbook.save(f"./信息统计-{grade}.xlsx")1.2 批量打开Excel文件import os
import xlwings as xw
app=xw.App(visible=True,add_book=False)
for file in os.listdir("."):
if file.endswith(".xlsx"):
app.books.open(file)
1.3批量重命名Excel工作表
import xlwings as xw
app=xw.App(visible=False,add_book=False)
workbook=app.books.open("信息统计-部门.xlsx")
for sheet in workbook.sheets:
sheet.name=sheet.name.replace("Sheet","业绩")
workbook.save()
app.quit()
1.4批量合并EXCEL文件
import pandas as pd
import os
data_list=[]
for fname in os.listdir("."):
if fname.startswith("信息统计-") and fname.endswith(".xlsx"):
data_list.append(pd.read_excel(fname))
data_all=pd.concat(data_list)
data_all.to_excel("信息统计总表.xlsx",index=False)
1.5批量数据查重import openpyxl
from openpyxl.styles import PatternFill
import re
import traceback
changeCells = 0
def Find_Same(file1,num1,col1,file2,num2,col2):
# load the file(*.xlsx)
wb1 = openpyxl.load_workbook(file1)
wb2 = openpyxl.load_workbook(file2)
# ! deal with one sheet
ws1 = wb1.worksheets[num1]
ws2 = wb2.worksheets[num2]
global changeCells
# get rows and columns of file
rows1 = ws1.max_row
rows2 = ws2.max_row
all_file1_data = []
file1_cells = 0
same_Cells=0
for row in range(2, rows1+1):
content = ws1.cell(row=row, column=col1).value
if (content != None):
if (type(content) == str):
if "-" in content:
content= content.replace("-", " ")
all_file1_data.append(content.lower())
file1_cells += 1
for row in range(2, rows2+1):
content = ws2.cell(row=row, column=col2).value
Color = ['ffeb9c', '9c6500'] # 黄
fille = PatternFill('solid', fgColor=Color[0])
if (content != None):
if (type(content) == str):
if "-" in content:
content = content.replace("-", " ")
for file1_data in all_file1_data:
if content.lower() in file1_data:
same_Cells += 1
ws2.cell(row=row, column=col2, value=content).fill = fille
ws2.cell(row=row, column=col2).value = content.replace(content, content+" "+str(all_file1_data.index(file1_data)))
print('file1_cells', file1_cells)
print('same_Cells', same_Cells)
wb2.save(file2)
if __name__ == "__main__":
Find_Same('test.xlsx',1,4,'test1.xlsx',1,4)
2.自动发送邮件
接下来就将进入Python邮件自动化。通过邮件自动化,我们将实现各种类型的邮件发送方式。比如普通文本邮件、带附件的邮件等等
邮件自动化篇所需的模块:
- smtplib 邮件协议与发送模块
- email 内容定义模块
- schedule 定时模块
smtplib 与 email 模块 可以帮助我们正常的发送邮件; schedule 模块可以帮助我们定时发送邮件,比如需要固定时间发送的邮件
下面给出一个小demo
# coding:utf-8
import smtplib
from email.mime.text import MIMEText
from email.header import Header
'''
第三方的 smpt [脚本中涉及的邮箱地址都是假的,请使用自己的真实邮箱地址进行测试]
'''
mail_host = "smtp.sina.com" # 设置邮箱服务器
mail_user = "conan868242" # 设置自己的邮箱
mail_pass = "cb997b01a87232b2" # 这里就是邮箱的口令,也就是授权码;不是密码。
sender = "conan868242@sina.com" # 定义发送者邮箱(其实就是自己)
receivers = ["3241716373@qq.com"] # 定义接受者邮箱(可以是多个接收者)
message = MIMEText("这是一封测试邮件 O(∩_∩)O哈哈~", "plain", "utf-8") # 定义邮件内容;"plain"是格式,表示是普通的文件内容
message["From"] = Header(sender) # 在message内定义发送信息 --> 发送者
message["Subject"] = Header("Python 测试邮件发送", "utf-8") # 在message内定义发送信息的标题
print("加密后的发送内容\n", message.as_string()) # 打印输出加密后的发送内容
try: # 捕获发送邮件的异常
smtpObj = smtplib.SMTP() # 实例化 SMTP 协议对象
smtpObj.connect(mail_host, 25) # 链接 SMTP 服务器
smtpObj.login(mail_user, mail_pass) # 登录邮箱验证
smtpObj.sendmail(sender, receivers, message.as_string()) # 发送邮件; "message" 通过 "as_string()" 进行发送内容字符串的加密
except smtplib.SMTPException as error:
print("error:{}".format(error))
关于Python技术储备
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
一、Python学习大纲
Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
CSDN:Python零基础入门到实战全套学习资料,免费分享
二、Python必备开发工具
三、入门学习视频
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、Python副业兼职与全职路线
六、互联网企业面试真题
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要也可以扫描下方csdn官方二维码或者点击主页和文章下方的微信卡片获取领取方式,【保证100%免费】