欢迎来到源码码网
帮助中心

源码码网

热门搜索: 淘宝客    商城小程序   
免费发布需求
免费发布商品

批量提取Excel数据|Python办公自动化

  • 时间:2020-09-07 16:55 编辑:码多多源码 来源:源码码网 阅读:35
  • 扫一扫,手机访问
摘要:今天我们来讲解一个比较简单的案例,使用openpyxl从Excel中提取指定的数据并生成新的文件,之后进一步批量自动化实现这个功能,通过本例可以学到的知识点:openpyxl模块的运用glob模块建立批处理数据源:阿里云天池的电商婴儿数据(可自行搜索并下载,如果要完成进阶难度可直接将该数据Excel拷贝999次即可,当然这个拷贝可以交给代码来实现)需求说明初级难度:

今天我们来讲解一个比较简单的案例,使用openpyxl从Excel中提取指定的数据并生成新的文件,之后进一步批量自动化实现这个功能,通过本例可以学到的知识点:openpyxl模块的运用、glob模块建立批处理

数据源:阿里云天池的电商婴儿数据(可自行搜索并下载,如果要完成进阶难度可直接将该数据Excel拷贝999次即可,当然这个拷贝可以交给代码来实现)


需求说明

初级难度:提取电商婴儿数据.xlsx中购买数buy_mount超过50的记录建立新的Excel表

image.png

最后形成如下的表格:

image.png

进阶难度:同一个文件夹下有1000电商婴儿数据的Excel表格(命名为电商婴儿数据1.xlsx电商婴儿数据2.xlsx电商婴儿数据1000.xlsx),需要提取所有表格中购买数buy_mount超过50的记录并汇总至一个新的Excel表

Python实现

让我们先完成初级难度的需求挑战,首先导入所需模块并打开数据表,注意

打开已经存在的Excel用load_workbook,创建新的Excel用Workbook

image.png

接下来筛选符合条件的行

image.png

这一步本质上就是对购买数的各个单元格进行判断,如果数值超过50就将其行号放入一个空列表中,间接完成了筛出符合条件的行。注意这一列有可能有的单元格cell的值value不是数值类型,因此需要用isinstance()进行判断,当然也可以将单元格的值先用int()转为整型再判断。


筛选出符合条件的行号就可以提取行并且放入新的Excel中了,因此需要先创建新的工作簿,现在创建新的工作簿写入符合条件的行,思路是根据行号获取到指定行后,遍历所有单元格的值组装成一个列表,用sheet.append()写入新表

image.png

初级难度的需求已经成功完成,至此我们已经学会从单个表中提取需要的行并且放到新的表格里。有的人可能会说了:一个表格的筛选可以直接用Excel中的 筛选 来完成,不需要用代码写这么复杂,还难以理解。因此就有了进阶需求。现在需要完成的工作变成,获取1000个表格中所有符合条件的行并汇总成一个新表。如果是手动操作的行,需要打开每个表格,然后一通筛选操作后,将所有满足条件的行都复制到新表,并且执行上述操作1000次!


这显然不现实,而如果你已经理解初级需求的思路,那么只需要加上几行代码,就可以完成进阶需求。所需要的模块是glob。批处理的大概代码框架如下:

image.png

如果需要遍历特定类型的文件可以限定后缀,以xlsx后缀的Excel文件为例

image.png

最后只需要将上面写好的针对单个文件的代码放到循环体内部,且load_workbook的路径变成循环出的每一个xlsx文件的绝对路径。当然,还需要想清楚有些代码不能在循环体里重复被执行,如创建新表和给新表添加表头,创建新表放在循环体外就可以,添加表头可以用一个单独的变量来判断这个操作是否已经被执行。完整代码如下:

image.png

image.png

小结

以上就是使用Python实现批量从Excel中提取指定数据的全部过程和代码,如果你也有相关需求,稍作修改即可使用。其实如果你仔细思考会发现这个需求使用pandas会以更简洁的代码实现,但是由于我们之后的Python办公自动化案例中会频繁使用openpyxl,并且在操作Excel时有更多的功能,因此在之后我们将主要讲解如何使用这个openpyxl实现。最后还是希望大家能够理解Python办公自动化的一个核心就是批量操作-解放双手,让复杂的工作自动化!


  • 全部评论(0)
最新发布的资讯信息
【行业资讯|】网传罗永浩6亿债务已还4亿,直播这么赚钱还卖个锤子手机!(2020-09-28 12:42)
【软件教程|软件开发】基于Vue+BootStrapV4的BootstrapVue构建响应式、移动项目(2020-09-28 12:26)
【软件教程|软件开发】基于camunda开发的工作流web系统sunFlow介绍(2020-09-28 12:16)
【软件教程|软件开发】 Vue Github超棒的开源可视化分析系统GitDataV(2020-09-28 12:01)
【开发工具|桌面工具】推荐一款美观小巧的网页内容编辑器——ContentTools(2020-09-25 13:53)
【软件教程|软件开发】优秀 vue+heyui 后端管理系统HeyUI-Admin(2020-09-25 13:43)
【开发工具|桌面工具】前端实用工具库——轻量的纯 JavaScript 动态提示工具插件库(2020-09-25 13:38)
【开发工具|桌面工具】VvvebJs—使用开源的JavaScript网站可视化构建库拖拽生成网页(2020-09-25 13:17)
【软件教程|软件开发】TronChain波场链系统开发(2020-09-23 17:52)
【软件教程|软件开发】分享两个免费开源且跨平台的Redis可视化客户端管理工具(2020-09-23 11:51)
联系我们

QQ:2494243972、1105326722

投诉举报:1105326722@qq.com

广告合作:QQ 110532672

源码码网手机版二维码
联系客服
手机版
源码码网手机版二维码
扫一扫进手机版
返回顶部