Python使用openpyxl批量处理数据


Posted in Python onJune 23, 2021

   前言,因为经常使用Excel处理数据,像表格内的筛选,表格间数据的复制,都是简单重复的操作,十分枯燥无聊,为了提高效率,主要是自己懒,特地研究openpyxl,发现能够简化个人劳动量,自己也是小白,特意写一篇文章,共同探讨。

安装openpyxl

这个要说简单也很简单,就是 pip install openpyxl
难也十分难,因为很多人安装不成功,各种报错,而且错误都是英文,还看不懂。大家可以搜索安装openpyxl,有教程指导,应该问题不大。

开始学习

首先导入库 openpyxl

import openpyxl as op
‘引入库,并把库的名字改为op,这样后面操作会少打很多字母,毕竟懒才是促进社会进步的阶梯'

打开指定工作表

wb = op.load_workbook('C:\\Users\\Administrator\\Desktop\\演示表.xlsx')

注意 \中第一个斜杠是转移符, .xlsx才是openpyxl可以处理的格式

显示工作表中有哪些子表

print(wb.sheetnames)

我操作的工作表中只有一个表,代码显示结果是

Python使用openpyxl批量处理数据

操作工作表

要实现操作工作表,首先要选中它

w1 = wb['表1']

有多种方法可以选中这个表,这里就用最简单的一种,就是 工作表 + 子表名字

打印一个A1表格的内容

print((w1['A1'].value))

打印一列表格的内容,

for i in w1['A']:
    print(i.value)

打印一列表格中部分内容

for i in w1['A2':'A5']:
    for j in i:
        print(j.value)

注意,这里多加了一个循环,在选中一列中部分表格时(A2到A5),第一次循环产生的格式和选中整列的格式会不一样,需要再一次循环,才能访问到单元格的值

批量改变某一列的内容

Python使用openpyxl批量处理数据

我们将给户主姓名这一列加入数字,一次为1,2,3,4…

import openpyxl as op
wb = op.load_workbook('C:\\Users\\Administrator\\Desktop\\演示表.xlsx')
print(wb.sheetnames)
w1 = wb['表1']
m = 0
for i in w1['B3':'B12']:
    for j in i:
        m = m + 1
        s = j.value + str(m)
        w1['B%d'%(m+2)] = s
wb.save('C:\\Users\\Administrator\\Desktop\\演示表.xlsx')

运行后表格如下

Python使用openpyxl批量处理数据

需要注意的是,操作时表格应处于关闭状态,操作完需要保存命令

根据某一项内容,改变对应项的内容
如果姓名含“雷”这个字,则要将其电话更改为0

import openpyxl as op
wb = op.load_workbook('C:\\Users\\Administrator\\Desktop\\演示表.xlsx')
print(wb.sheetnames)
w1 = wb['表1']
m = 0
for i in w1['B3':'B12']:
    for j in i:
        for n in j.value:
            if n == '雷':
                s = str(j)
                s = s[-3:]
                s = ''.join([x for x in s if x.isdigit()])
                s = int(s)
                w1['D%d'%s] = 0
                print(s)
wb.save('C:\\Users\\Administrator\\Desktop\\演示表.xlsx')

这段代码实现了我们的诉求,即如果姓名含“雷”这个字,则要将其电话更改为0,但是十分丑陋,因为我没找到一个简洁的命令或是方法,实现根据单元格参数筛选出对应的行数,希望有这个的大神指点迷津,这是这段代码的结果

Python使用openpyxl批量处理数据

总结

python 很强大,openpyxl也很强大,能够批量处理Excel数据,但本人python功底不足,代码实在不好看,希望有大神指点一二,共同提高python水平

以上就是Python使用openpyxl批量处理数据的详细内容,更多关于Python批量处理的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
python的urllib模块显示下载进度示例
Jan 17 Python
编写简单的Python程序来判断文本的语种
Apr 07 Python
Pycharm学习教程(7)虚拟机VM的配置教程
May 04 Python
python交互式图形编程实例(二)
Nov 17 Python
浅谈Python 多进程默认不能共享全局变量的问题
Jan 11 Python
python处理excel绘制雷达图
Oct 18 Python
Python OpenCV实现测量图片物体宽度
May 27 Python
keras的load_model实现加载含有参数的自定义模型
Jun 22 Python
基于CentOS搭建Python Django环境过程解析
Aug 24 Python
一文带你掌握Pyecharts地理数据可视化的方法
Feb 06 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
Python3中最常用的5种线程锁实例总结
Jul 07 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
opencv-python图像配准(匹配和叠加)的实现
Python初学者必备的文件读写指南
Jun 23 #Python
总结Python连接CS2000的详细步骤
python图片灰度化处理的几种方法
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
You might like
MySQL时间字段究竟使用INT还是DateTime的说明
2012/02/27 PHP
PHP使用JSON和将json还原成数组
2015/02/12 PHP
php返回当前日期或者指定日期是周几
2015/05/21 PHP
PHP 5.6.11中CURL模块问题的解决方法
2016/08/08 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
Linux下 php7安装redis的方法
2018/11/01 PHP
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
2011/07/11 Javascript
模拟jQuery中的ready方法及实现按需加载css,js实例代码
2013/09/27 Javascript
动态创建script标签实现跨域资源访问的方法介绍
2014/02/28 Javascript
AngularJS入门教程之表格实例详解
2016/07/27 Javascript
jQuery.uploadify文件上传组件实例讲解
2016/09/23 Javascript
IOS中safari下的select下拉菜单文字过长不换行的解决方法
2016/09/26 Javascript
Jquery实现上下移动和排序代码
2016/10/17 Javascript
js保留两位小数方法总结
2018/01/31 Javascript
Angular实现模版驱动表单的自定义校验功能(密码确认为例)
2018/05/17 Javascript
详解微信小程序实现WebSocket心跳重连
2018/07/31 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
[35:34]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
python将xml xsl文件生成html文件存储示例讲解
2013/12/03 Python
Python安装第三方库及常见问题处理方法汇总
2016/09/13 Python
浅析python继承与多重继承
2018/09/13 Python
python中的json总结
2018/10/11 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
2020/06/03 Python
Python操作MySQL数据库的示例代码
2020/07/13 Python
python中if嵌套命令实例讲解
2021/02/25 Python
商务主管岗位职责
2013/12/08 职场文书
物流司机岗位职责
2013/12/28 职场文书
CAD制图人员的自荐信
2014/02/07 职场文书
教师素质教育心得体会
2016/01/19 职场文书
Python字符串对齐方法使用(ljust()、rjust()和center())
2021/04/26 Python
浅谈Python魔法方法
2021/06/28 Java/Android
xhunter1.sys可以删除嘛? win11提示xhunter1.sys驱动不兼容解决办法
2022/09/23 数码科技