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中序列与字典的相同和不同之处
Jan 19 Python
深度定制Python的Flask框架开发环境的一些技巧总结
Jul 12 Python
Python中标准模块importlib详解
Apr 16 Python
python中文件变化监控示例(watchdog)
Oct 16 Python
python使用KNN算法手写体识别
Feb 01 Python
python读取几个G的csv文件方法
Jan 07 Python
Python OOP类中的几种函数或方法总结
Feb 22 Python
Django后端接收嵌套Json数据及解析详解
Jul 17 Python
在django中,关于session的通用设置方法
Aug 06 Python
Kears+Opencv实现简单人脸识别
Aug 28 Python
浅谈对pytroch中torch.autograd.backward的思考
Dec 27 Python
Django数据库操作之save与update的使用
Apr 01 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
opencv-python图像配准(匹配和叠加)的实现
Python初学者必备的文件读写指南
Jun 23 #Python
总结Python连接CS2000的详细步骤
python图片灰度化处理的几种方法
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
You might like
浅析PHP水印技术
2007/02/14 PHP
抓取并下载CSS中所有图片文件的php代码
2011/09/26 PHP
php带抄送和密件抄送的邮件发送方法
2015/03/20 PHP
php简单复制文件的方法
2016/05/09 PHP
Laravel学习教程之model validation的使用示例
2017/10/23 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
不使用浏览器运行javascript代码的方法
2013/07/24 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
JQuery教学之性能优化
2014/05/14 Javascript
js监听鼠标事件控制textarea输入字符串的个数
2014/09/29 Javascript
jquery 重写 ajax提交并判断权限后 使用load方法报错解决方法
2016/01/19 Javascript
JS 组件系列之 bootstrap treegrid 组件封装过程
2017/04/28 Javascript
layui 监听表格复选框选中值的方法
2018/08/15 Javascript
vue2.0 如何在hash模式下实现微信分享
2019/01/22 Javascript
Python多进程编程技术实例分析
2014/09/16 Python
Python多进程同步Lock、Semaphore、Event实例
2014/11/21 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
Python 使用os.remove删除文件夹时报错的解决方法
2017/01/13 Python
用python处理图片实现图像中的像素访问
2018/05/04 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
python批量修改文件夹及其子文件夹下的文件内容
2019/03/15 Python
python三大神器之fabric使用教程
2019/06/10 Python
python3中sorted函数里cmp参数改变详解
2020/03/12 Python
Python使用plt.boxplot() 参数绘制箱线图
2020/06/04 Python
使用anaconda安装pytorch的实现步骤
2020/09/03 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
一篇文章教你用python画动态爱心表白
2020/11/22 Python
html5+css3进度条倒计时动画特效代码【推荐】
2016/03/08 HTML / CSS
自动化职业生涯规划书范文
2014/01/03 职场文书
幼儿园门卫岗位职责范本
2014/07/02 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
城南旧事电影观后感
2015/06/16 职场文书
运动会报道稿大全
2015/07/23 职场文书
2016年万圣节活动个人总结
2016/04/05 职场文书
CSS实现切角+边框+投影+内容背景色渐变效果
2021/11/01 HTML / CSS
Redis数据同步之redis shake的实现方法
2022/04/21 Redis