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标准库内置函数complex介绍
Nov 25 Python
python实现端口转发器的方法
Mar 13 Python
python模块之StringIO使用示例
Apr 08 Python
python中assert用法实例分析
Apr 30 Python
python实现画一颗树和一片森林
Jun 25 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
Dec 05 Python
对IPython交互模式下的退出方法详解
Feb 16 Python
基于pytorch padding=SAME的解决方式
Feb 18 Python
python求numpy中array按列非零元素的平均值案例
Jun 08 Python
keras得到每层的系数方式
Jun 15 Python
python如何写try语句
Jul 14 Python
scrapy中如何设置应用cookies的方法(3种)
Sep 22 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
opencv-python图像配准(匹配和叠加)的实现
Python初学者必备的文件读写指南
Jun 23 #Python
总结Python连接CS2000的详细步骤
python图片灰度化处理的几种方法
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
You might like
Discuz板块横排显示图片的实现方法
2007/05/28 PHP
Ext.data.PagingMemoryProxy分页一次性读取数据的实现代码
2010/04/07 PHP
php使用数组填充下拉列表框的方法
2015/03/31 PHP
PHP编写RESTful接口
2016/02/23 PHP
清华大学出版的事半功倍系列 javascript全部源代码
2007/05/04 Javascript
jQuery自带的一些常用方法总结
2014/09/03 Javascript
Javascript访问器属性实例分析
2014/12/30 Javascript
jQuery实现的瀑布流加载效果示例
2016/09/13 Javascript
jQuery版AJAX简易封装代码
2016/09/14 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
jquery插入兄弟节点的操作方法
2016/12/07 Javascript
JavaScript解析JSON格式数据的方法示例
2017/01/24 Javascript
走进AngularJs之过滤器(filter)详解
2017/02/17 Javascript
JS简单验证上传文件类型的方法
2017/04/17 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
详解nodejs通过代理(proxy)发送http请求(request)
2017/09/22 NodeJs
Cocos2d实现刮刮卡效果
2018/12/20 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
tensorflow实现逻辑回归模型
2018/09/08 Python
python 限制函数执行时间,自己实现timeout的实例
2019/01/12 Python
Python分析彩票记录并预测中奖号码过程详解
2019/07/09 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
使用Python快乐学数学Github万星神器Manim简介
2019/08/07 Python
Pycharm如何导入python文件及解决报错问题
2020/05/10 Python
仓库保管员岗位职责
2013/12/20 职场文书
文科生自我鉴定
2014/02/15 职场文书
副护士长竞聘演讲稿
2014/04/30 职场文书
卫生标语大全
2014/06/21 职场文书
社团活动总结书
2014/06/27 职场文书
中学生社会实践教育活动总结
2015/05/06 职场文书
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python
简单谈谈Python面向对象的相关知识
2021/06/28 Python
Nginx使用Lua模块实现WAF的原理解析
2021/09/04 Servers
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android
Nginx代理Redis哨兵主从配置的实现
2022/07/15 Servers