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监控网卡流量并使用graphite绘图的示例
Apr 27 Python
在Python中使用PIL模块对图片进行高斯模糊处理的教程
May 05 Python
Python选课系统开发程序
Sep 02 Python
12个步骤教你理解Python装饰器
Jul 01 Python
关于Python形参打包与解包小技巧分享
Aug 24 Python
使用Python将字符串转换为格式化的日期时间字符串
Sep 01 Python
python如何爬取动态网站
Sep 09 Python
详解Python中如何将数据存储为json格式的文件
Nov 18 Python
如何用PyPy让你的Python代码运行得更快
Dec 02 Python
python 批量将中文名转换为拼音
Feb 07 Python
python使用openpyxl库读写Excel表格的方法(增删改查操作)
May 02 Python
python机器学习创建基于规则聊天机器人过程示例详解
Nov 02 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
opencv-python图像配准(匹配和叠加)的实现
Python初学者必备的文件读写指南
Jun 23 #Python
总结Python连接CS2000的详细步骤
python图片灰度化处理的几种方法
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
You might like
PHP 动态随机生成验证码类代码
2010/04/09 PHP
PHP实现动态获取函数参数的方法示例
2018/04/02 PHP
php微信开发之音乐回复功能
2018/06/14 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
在你的网页中嵌入外部网页的方法
2007/04/02 Javascript
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
Extjs Gird 支持中文拼音排序实现代码
2013/04/15 Javascript
jquery仿搜索自动联想功能代码
2014/05/23 Javascript
javascript在网页中实现读取剪贴板粘贴截图功能
2014/06/07 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
基于JS实现移动端访问PC端页面时跳转到对应的移动端网页
2020/12/24 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
小程序实现留言板
2018/11/02 Javascript
js使用文件流下载csv文件的实现方法
2019/07/15 Javascript
Vue+elementUI实现多图片上传与回显功能(含回显后继续上传或删除)
2020/03/23 Javascript
原生JS实现九宫格抽奖
2020/09/13 Javascript
在Python的web框架中编写创建日志的程序的教程
2015/04/30 Python
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
Android分包MultiDex策略详解
2017/10/30 Python
python 统计列表中不同元素的数量方法
2018/06/29 Python
Python实现微信翻译机器人的方法
2019/08/13 Python
Python如何实现大型数组运算(使用NumPy)
2020/07/24 Python
使用HTML5 Canvas绘制直线或折线等线条的方法讲解
2016/03/14 HTML / CSS
美国正宗奢华复古手袋、珠宝及配饰网站:What Goes Around Comes Around
2018/07/21 全球购物
阿姆斯特丹杜莎夫人蜡像馆官方网站:Madame Tussauds Amsterdam
2019/03/12 全球购物
mysql_pconnect()和mysql_connect()有什么区别
2012/05/25 面试题
如何实现jdbc性能优化
2012/07/30 面试题
优秀团员事迹材料2000字
2014/08/20 职场文书
先进事迹演讲稿
2014/09/01 职场文书
党旗在我心中演讲稿
2014/09/15 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
2014年幼儿园教学工作总结
2014/12/04 职场文书
刑事附带民事上诉状
2015/05/23 职场文书