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 Web框架Flask中使用新浪SAE云存储实例
Feb 08 Python
python3实现磁盘空间监控
Jun 21 Python
python中计算一个列表中连续相同的元素个数方法
Jun 29 Python
对python中两种列表元素去重函数性能的比较方法
Jun 29 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
PHP统计代码行数的小代码
Sep 19 Python
python数据爬下来保存的位置
Feb 17 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 Python
Python爬虫爬取杭州24时温度并展示操作示例
Mar 27 Python
python爬虫使用scrapy注意事项
Nov 23 Python
解决pytorch 损失函数中输入输出不匹配的问题
Jun 05 Python
python函数的两种嵌套方法使用
Apr 02 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
opencv-python图像配准(匹配和叠加)的实现
Python初学者必备的文件读写指南
Jun 23 #Python
总结Python连接CS2000的详细步骤
python图片灰度化处理的几种方法
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
You might like
php引用返回与取消引用的详解
2013/06/08 PHP
php增删改查示例自己写的demo
2013/09/04 PHP
美图秀秀web开放平台--PHP流式上传和表单上传示例分享
2014/06/22 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
使用正则替换变量
2007/05/05 Javascript
JavaScript的document对象和window对象详解
2010/12/30 Javascript
js动画(animate)简单引擎代码示例
2012/12/04 Javascript
js控制表单奇偶行样式的简单方法
2013/07/31 Javascript
js实现接收表单的值并将值拼在表单action后面的方法
2015/11/23 Javascript
使用plupload自定义参数实现多文件上传
2016/07/19 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
微信小程序 详解Page中data数据操作和函数调用
2017/01/12 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
vue获取input输入值的问题解决办法
2017/10/17 Javascript
在 Vue 项目中引入 tinymce 富文本编辑器的完整代码
2018/05/04 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
小程序实现锚点滑动效果
2019/09/23 Javascript
Vue点击切换Class变化,实现Active当前样式操作
2020/07/17 Javascript
[46:25]DOTA2上海特级锦标赛主赛事日 - 4 败者组第五轮 MVP.Phx VS EG第二局
2016/03/05 DOTA
[04:04]DOTA2亚洲邀请赛比赛场馆&酒店全攻略
2017/03/23 DOTA
基于Python中单例模式的几种实现方式及优化详解
2018/01/09 Python
Python实现的将文件每一列写入列表功能示例【测试可用】
2018/03/19 Python
python实现简单登陆流程的方法
2018/04/22 Python
Python实现的简单排列组合算法示例
2018/07/04 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
Python3.6中Twisted模块安装的问题与解决
2019/04/15 Python
python多线程并发及测试框架案例
2019/10/15 Python
解决Pytorch 加载训练好的模型 遇到的error问题
2020/01/10 Python
基于python监控程序是否关闭
2020/01/14 Python
几个MySql的面试题
2013/04/22 面试题
初中生三年学习生活的自我评价
2013/11/03 职场文书
班组安全员工作职责
2014/02/01 职场文书
老师对学生的评语
2014/04/18 职场文书
二年级学生期末评语
2014/12/26 职场文书
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers