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 pddf = pd.DataFrame({'姓名':['小王','小张','小李'],'年龄':[23,26,19]})df


导入:

sht_2.range('B1').value = df

向表二中导入numpy数组

import numpy as npobj = 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 pltfig = 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.2sht_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.1sht_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].colorif c == (255,0,0):            list_1.append((i,j))

这些小例子都能跑,你能够放本人电脑上运行下,或者手敲每个代码,这样相对能高效率把握。

如果对python语法还不相熟,最好先把框架相熟一遍,多做些练习。

明天的分享就到这里啦~