Python 办公自动化次要是批量化、自动化、定制化解决数据问题,目前次要分为三大块:自动化 office、自动化机器人、自动化数据服务。
1、自动化 office,包含对 excel、word、ppt、email、pdf 等罕用办公场景的操作,
python 都有对应的工具库,能够很不便的调用。
提供一些常见的外围库供大家参考应用。
excel:xlwings、xlrd、xlwt、openpyxl
word:Python-docx
ppt:pptx
email:smtplib(SMTP 服务)、email(解析解决)、yagmail(全能)
pdf:pypdf2、pdfminer、pdfplumber
picture:PIL
学这些会撸 python 是前提,对于小白来说自学也不是件容易的事,须要花相当的工夫去适应 python 的语法逻辑,而且要保持亲手敲代码,一直练习。
2、自动化机器人,用来进步惯例且高频的服务,比方微信客服、主动交易系统、实时信息抓取、QQ 聊天机器人等。
例如
web 自动化测试:selenium
模仿鼠标键盘:pymouse、pywinauto、pyautogui
微信自动化:wechatby
Python 自动化办公其实并不难,但也须要有 Python 根底,起码得会写脚本,不然只管有自动化接口也用不了。
很多人入了很长时间门,还是在门外彷徨,我感觉这是学习办法的问题。学习编程肯定要多练习,根底 + 实战同步走,这样能力最快把握 Python。
可能你会问,看书看不进去怎么办,那就换条路子,你能够去看视频、看网络教程、逛 github,都是很不错的办法.
3、自动化数据服务,次要是提供流式数据服务,从数据获取、数据处理、数据建模、数据可视化,到最终生成数据报告,通过 python 搭建起残缺数据链条。
数据抓取:requests、scrapy
数据处理:pandas、numpy
数据建模:scipy、scikit-learn、statesmodel、keras
数据可视化:matplotlib、seaborn、bokeh、pyecharts
数据报表:dash
以 python 操作 excel 为例,应用 xlwings 生成自动化图表。
1、简略介绍 xlwings
接下来实操演练:
1、筹备一个表格
2、对表格进行各种操作
导入 xlwings 库,命名为 xw
import xlwings as xw
建设与流动工作簿的连贯
# 这里应用 books 办法,援用工作簿
wb = xw.books["商品清单.xlsx"]
type(wb)
xlwings.main.Book
查看工作簿的名字
wb.name
‘ 商品清单.xlsx’
实例化工作表对象
sht = wb.sheets['表一']
查看表一中 A1 单元格的内容
# 规范用法
sht.range('A1').value
‘ 品类 ’
# 简洁用法
sht['A1'].value
‘ 品类 ’
# 索引用法
sht[0,0].value
‘ 品类 ’
查看表一中 A1-D8 所有单元格的内容
sht.range('A1:D8').value
输入:
[['品类', '数量(件)', '单价(元)', '总价(元)'],
['坚果', 5.0, 30.0, 150.0],
['罐头', 9.0, 10.0, 90.0],
['牛肉', 3.0, 60.0, 180.0],
['果汁', 10.0, 9.0, 90.0],
['蜂蜜', 2.0, 80.0, 160.0],
['进口零食', 4.0, 70.0, 280.0],
['共计', 33.0, 43.166666666666664, 950.0]]
sht[:8,:4].value
输入:
[['品类', '数量(件)', '单价(元)', '总价(元)'],
['坚果', 5.0, 30.0, 150.0],
['罐头', 9.0, 10.0, 90.0],
['牛肉', 3.0, 60.0, 180.0],
['果汁', 10.0, 9.0, 90.0],
['蜂蜜', 2.0, 80.0, 160.0],
['进口零食', 4.0, 70.0, 280.0],
['共计', 33.0, 43.166666666666664, 950.0]]
将表一 B2 单元格 5 改为 7
sht.range('B2').value = 7
向表二中导入 dataframe 类型数据
第一步:连贯表二
第二步:生成一个 dataframe 类型数据集
第三步:导入表二
sht_2 = wb.sheets['表二']
import pandas as pd
df = pd.DataFrame({'姓名':['小王','小张','小李'],'年龄':[23,26,19]})
df
导入:
sht_2.range('B1').value = df
向表二中导入 numpy 数组
import numpy as np
obj = np.array([[1,2,3],[4,5,6]])
obj
输入:
array([[1, 2, 3],
[4, 5, 6]])
导入:
sht_2.range('F1').value = obj
将 excel 中数据导出为 DataFrame 格局
sht_2.range('B1').options(pd.DataFrame, expand='table').value
用 matplotlib 绘图并将图片贴到 excel 上
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(4,4))
plt.plot([1,2,3,4,5])
sht_2.pictures.add(fig, name='MyPlot', update=True)
输入:
<Picture 'MyPlot' in <Sheet [商品清单.xlsx]表二 >>
批改表三中 A1 单元格的宽和高
连贯表三
sht_3 = wb.sheets['表三']
查看 A1 单元格的宽和高
# 查看列宽
sht_3.range('A1').column_width
8.11
# 查看行高
sht_3.range('A1').row_height
13.8
A1 单元格高改为 15.6,宽改为 2.2
sht_3.range('A1').column_width = 2.2
sht_3.range('A1').row_height = 15.6
批改表三 B1 单元格色彩
# 查看 B1 单元格色彩
sht_3.range('B1').color
(255, 0, 0)
批改 B1 单元格色彩为彩色
sht_3.range('B1').color = (0,0,0)
写一个自动化的小脚本
def f():
sht_3.range("A1:AZ48").column_width = 1.1
sht_3.range('A1:AZ48').row_height = 7.8
list_1 = pd.read_csv('zaike.csv').values
for i,j in list_1:
sht_3[int(i),int(j)].color = (255,25,0)
f()
list_1 = []
for i in range(30):
for j in range(40):
c = sht_3[i,j].color
if c == (255,0,0):
list_1.append((i,j))
这些小例子都能跑,你能够放本人电脑上运行下,或者手敲每个代码,这样相对能高效率把握。
如果对 python 语法还不相熟,最好先把框架相熟一遍,多做些练习。
明天的分享就到这里啦~