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的Tqdm模块的使用
Jan 10 Python
python使用sqlite3时游标使用方法
Mar 13 Python
浅谈numpy生成数组的零值问题
Nov 12 Python
Numpy截取指定范围内的数据方法
Nov 14 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
Jun 27 Python
Python之虚拟环境virtualenv,pipreqs生成项目依赖第三方包的方法
Jul 23 Python
Python turtle绘画象棋棋盘
Aug 21 Python
python将数组n等分的实例
Dec 02 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
Aug 17 Python
Python return语句如何实现结果返回调用
Oct 15 Python
Python中super().__init__()测试以及理解
Dec 06 Python
Python3的进程和线程你了解吗
Mar 16 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
opencv-python图像配准(匹配和叠加)的实现
Python初学者必备的文件读写指南
Jun 23 #Python
总结Python连接CS2000的详细步骤
python图片灰度化处理的几种方法
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
You might like
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
php设计模式之命令模式使用示例
2014/03/02 PHP
PHP中copy on write写时复制机制介绍
2014/05/13 PHP
php过滤HTML标签、属性等正则表达式汇总
2014/09/22 PHP
PHP内置的Math函数效率测试
2014/12/01 PHP
Yii2框架实现注册和登录教程
2016/09/30 PHP
PHP上传图片时判断上传文件是否为可用图片的方法
2016/10/20 PHP
javascript HTMLEncode HTMLDecode的完整实例(兼容ie和火狐)
2009/06/02 Javascript
javascript实现checkBox的全选,反选与赋值
2015/03/12 Javascript
javascript的列表切换【实现代码】
2016/05/03 Javascript
Vuejs 组件——props数据传递的实例代码
2017/03/07 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
2017/09/18 Javascript
JS调用安卓手机摄像头扫描二维码
2018/10/16 Javascript
js字符串类型String常用操作实例总结
2019/07/05 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
vue使用map代替Aarry数组循环遍历的方法
2020/04/30 Javascript
解决vuecli3中img src 的引入问题
2020/08/04 Javascript
跟老齐学Python之print详解
2014/09/28 Python
批处理与python代码混合编程的方法
2016/05/19 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
Django的用户模块与权限系统的示例代码
2019/07/24 Python
Python绘图之柱形图绘制详解
2020/07/28 Python
python subprocess pipe 实时输出日志的操作
2020/12/05 Python
Scrapy实现模拟登录的示例代码
2021/02/21 Python
基于HTML5的WebGL经典3D虚拟机房漫游动画
2017/11/15 HTML / CSS
农场厂长岗位职责
2013/12/28 职场文书
大学生入党思想汇报
2014/01/14 职场文书
社区母亲节活动记录
2014/03/06 职场文书
学生评语大全
2014/04/18 职场文书
护士节策划方案
2014/05/19 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
SpringBoot 拦截器妙用你真的了解吗
2021/07/01 Java/Android
css3中2D转换之有趣的transform形变效果
2022/02/24 HTML / CSS
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers