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中fileno()方法的使用
May 24 Python
Java中重定向输出流实现用文件记录程序日志
Jun 12 Python
Windows下Python的Django框架环境部署及应用编写入门
Mar 10 Python
Python切换pip安装源的方法详解
Nov 18 Python
Python中字符串的修改及传参详解
Nov 30 Python
基于Linux系统中python matplotlib画图的中文显示问题的解决方法
Jun 15 Python
如何利用python查找电脑文件
Apr 27 Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 Python
python实现WebSocket服务端过程解析
Oct 18 Python
Iconfont(矢量图标)+iconmoon(图标svg互转)配合javascript实现社交分享系统
Apr 21 Python
python3让print输出不换行的方法
Aug 24 Python
pip 20.3 新版本发布!即将抛弃 Python 2.x(推荐)
Dec 16 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
opencv-python图像配准(匹配和叠加)的实现
Python初学者必备的文件读写指南
Jun 23 #Python
总结Python连接CS2000的详细步骤
python图片灰度化处理的几种方法
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
You might like
广播爱好者需要了解的天线知识
2021/03/01 无线电
ThinkPHP模板判断输出Present标签用法详解
2014/06/30 PHP
php生成唯一数字id的方法汇总
2015/11/18 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
php微信开发之谷歌测距
2018/06/14 PHP
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
js实现漂浮回顶部按钮实例
2015/05/06 Javascript
使用jspdf生成pdf报表
2015/07/03 Javascript
Hammer.js+轮播原理实现简洁的滑屏功能
2016/02/02 Javascript
JS实现环形进度条(从0到100%)效果
2016/07/05 Javascript
纯js和css完成贪吃蛇小游戏demo
2016/09/01 Javascript
AngularJS折叠菜单实现方法示例
2017/05/18 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
vue项目中实现缓存的最佳方案详解
2019/07/11 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
python进程管理工具supervisor使用实例
2014/09/17 Python
python中安装模块包版本冲突问题的解决
2017/05/02 Python
python爬虫获取京东手机图片的图文教程
2017/12/29 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
py-charm延长试用期限实例
2019/12/22 Python
python如何获取apk的packagename和activity
2020/01/10 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
地图可视化神器kepler.gl python接口的使用方法
2020/12/22 Python
泰国时尚电商:POMELO Fashion
2020/03/11 全球购物
高级销售员求职信
2013/10/25 职场文书
早读迟到检讨书
2014/01/24 职场文书
学习党的群众路线对照检查材料
2014/09/29 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
践行三严三实心得体会
2014/10/13 职场文书
2016暑期师德培训心得体会
2016/01/09 职场文书
会计专业自荐信范文
2019/05/22 职场文书
浅谈怎么给Python添加类型标注
2021/06/08 Python
Python上下文管理器Content Manager
2021/06/26 Python
关于Oracle12C默认用户名system密码不正确的解决方案
2021/10/16 Oracle