可能有一个无聊的任务,需要从一个Excel,表格拷贝一些数据,粘贴到另一个电子表格中。或者可能需要从几千行中挑选几行,根据某种条件稍作修改。或者需要查看几百份部门预算电子表格,寻找其中的赤字。正是这种无聊无脑的电子表格任务,可以通过 Python 来完成。
——摘自:《Python编程快速上手——让繁琐编程自动化》
一. 模块介绍
Python中有许多模块支持操作Excel:openpyxl,xlwings,win32com, xlsxwriter, xlrd, xlwt, xlutils 等等;另外pandas作为一个强大的分析结构化数据的工具集,同样可以处理excel数据。以下各个模块的介绍,可以根据需要和习惯,选择相应的模块来自动化操作Excel。
1. openpyxl模块
用于读取写入Excel2010以上 xlsx/xlsm/xltx/xltm格式的文件。官方文档:
2. xlwings模块
xlwings是一个bsd许可的Python库,可以很容易地从Excel中调用Python,反之亦然。使用接近VBA的语法从Python中自动与Excel交互。可以用干净且功能强大的Python代码替换VBA宏。还支持用Python(仅Windows)编写用户定义函数(UDF)。另外,可以通过REST API公开您的Excel工作簿。完全支持Numpy数组和Pandas Series / DataFrame。xlwings支持的工作簿易于分发,并且可以在Windows和Mac上工作。
完全支持Numpy数组和Pandas Series / DataFrame。xlwings支持的工作簿易于分发,并且可以在Windows和Mac上工作。
3. win32com模块
Windows系统可以使用,功能强大,除了可以操作Excel,还可以操作Word,PowerPoint等文件。官方文档没找到,可以自行搜索。
4. xlsxwriter模块
XlsxWriter是一个Python模块,可用于在Excel 2007+ XLSX文件中编写文本、数字、公式和到多个工作表的超链接。它支持的功能,如格式化和更多,包括:100%兼容Excel XLSX文件完整的格式、合并单元格、图表、自动筛选、数据验证和下拉列表、条件格式、文本框、与pandas的集成、写入大文件的内存优化模式。它支持Python 2.7、3.4+。
5.xlrd模块
xlrd是一个用于从Excel文件(无论是.xls还是.xlsx文件)读取数据和格式化信息的库。
6. xlwt模块
xlwt是一个用于将数据和格式信息写入旧版Excel文件(即.xls)的库。
7. xlutils模块
基于xlwt模块和xlrd模块的封装。
8. pandas模块
pandas是BSD许可的开放源代码库,为Python编程语言提供了高性能,易于使用的数据结构和数据分析工具。Excel作为数据容器使用。
二. Python自动化操作Excel 案例分享
1. 实现快速统计
如下图是数据处理前的Excel数据,可以看到,这是一张兴趣统计表,通过统计结果,我们可以知道每个人的兴趣,但是不直观(随着数据量越大,越不直观)。
如果再H列能够清晰的显示每个人的兴趣,就会直观很多,如下图
具体Python代码如下:
2. 实现快速替换制定价格
下图是蔬菜销售订单,可以看到,总共有2万多条数据,其中,每种商品都有很多不同的订单,一行代表一个订单。现在突然价格调整,需要将Potatoes与Okra的单价分别变为1与2。
处理结果如下:
3. 批量获得手机号归属地等信息
结合Python第三方模块phone,可以快速获取手机号归属地等信息。
结果如下:
三.学习分享
高手都是不断操作,不断Coding,才变成高手的。如果 想快速自动化操作,可以多参考各位大佬在博客或者GitHub分享的案例,如果想自己彻底弄明白,那就需要在参考别人的同时,老老实实的啃文档,多练习,不断从模仿到创新。一起加油!
模仿——啃文档——模仿——啃文档……成为高手之路,一起加油!