python可以实现哪些办公自动化?

如题所述

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

importxlwingsasxw

建立与活动工作簿的连接

#这里使用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['表二']

importpandasaspd

df=pd.DataFrame({'姓名':['小王','小张','小李'],'年龄':[23,26,19]})

df


导入:


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

向表二中导入numpy数组


importnumpyasnp

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上


importmatplotlib.pyplotasplt

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)

写一个自动化的小脚本


deff():

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

fori,jinlist_1:

sht_3[int(i),int(j)].color=(255,25,0)

f()

list_1=[]

foriinrange(30):

forjinrange(40):

c=sht_3[i,j].color

ifc==(255,0,0):

list_1.append((i,j))

这些小例子都能跑,你可以放自己电脑上运行下,或者手敲每个代码,这样绝对能高效率掌握。


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

温馨提示:答案为网友推荐,仅供参考