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中用sleep()方法操作时间的教程
May 22 Python
Python使用Turtle模块绘制五星红旗代码示例
Dec 11 Python
Python实现k-means算法
Feb 23 Python
python微信跳一跳系列之棋子定位颜色识别
Feb 26 Python
基于随机梯度下降的矩阵分解推荐算法(python)
Aug 31 Python
python版大富翁源代码分享
Nov 19 Python
python打包exe开机自动启动的实例(windows)
Jun 28 Python
基于sklearn实现Bagging算法(python)
Jul 11 Python
在Python中预先初始化列表内容和长度的实现
Nov 28 Python
Python json模块与jsonpath模块区别详解
Mar 05 Python
Python基础之赋值,浅拷贝,深拷贝的区别
Apr 30 Python
python中subplot大小的设置步骤
Jun 28 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
opencv-python图像配准(匹配和叠加)的实现
Python初学者必备的文件读写指南
Jun 23 #Python
总结Python连接CS2000的详细步骤
python图片灰度化处理的几种方法
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
You might like
PHP 数据库树的遍历方法
2009/02/06 PHP
php列出一个目录下的所有文件的代码
2012/10/09 PHP
PHP使用Face++接口开发微信公众平台人脸识别系统的方法
2015/04/17 PHP
在WordPress中使用PHP脚本来判断访客来自什么国家
2015/12/10 PHP
jquery tablesorter.js 支持中文表格排序改进
2009/12/09 Javascript
xheditor与validate插件冲突的解决方案
2010/04/15 Javascript
Javascript base64编码实现代码
2011/12/02 Javascript
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
javascript中数组中求最大值示例代码
2013/12/18 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
javascript操作表格排序实例分析
2015/05/06 Javascript
jQuery聚合函数实例
2015/05/21 Javascript
jQuery实现网页顶部固定导航效果代码
2015/12/24 Javascript
nodejs微信公众号支付开发
2016/09/19 NodeJs
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
解决layui批量传值到后台操作时出现传值为空的问题
2019/09/28 Javascript
js new Date()实例测试
2019/10/31 Javascript
[01:10]DOTA2次级职业联赛 - U5战队宣传片
2014/12/01 DOTA
python中logging库的使用总结
2017/10/18 Python
Python中文件的读取和写入操作
2018/04/27 Python
对python pandas 画移动平均线的方法详解
2018/11/28 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
python代码实现图书管理系统
2020/11/30 Python
详解CSS3中nth-child与nth-of-type的区别
2017/01/05 HTML / CSS
加拿大领先的牛仔零售商:Bluenotes
2018/01/22 全球购物
FragranceNet中文网:北美健康美容线上零售商
2020/08/26 全球购物
应届生如何写自荐信
2014/01/05 职场文书
党校学习思想汇报
2014/01/06 职场文书
班主任寄语大全
2014/04/04 职场文书
教师辞职书范文
2015/02/26 职场文书
公司欠款证明
2015/06/24 职场文书
2015年重阳节活动主持词
2015/07/30 职场文书
2020优秀员工演讲稿(三篇)
2019/10/17 职场文书
为什么 Nginx 比 Apache 更牛逼
2021/03/31 Servers
SQL注入的实现以及防范示例详解
2021/06/02 MySQL