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处理json数据中的中文
Mar 06 Python
python使用pil生成缩略图的方法
Mar 26 Python
Python中使用copy模块实现列表(list)拷贝
Apr 14 Python
requests和lxml实现爬虫的方法
Jun 11 Python
基于python的Tkinter编写登陆注册界面
Jun 30 Python
python使用pymongo操作mongo的完整步骤
Apr 13 Python
在python中画正态分布图像的实例
Jul 08 Python
Python如何使用OS模块调用cmd
Feb 27 Python
解决Jupyter notebook更换主题工具栏被隐藏及添加目录生成插件问题
Apr 20 Python
Django Path转换器自定义及正则代码实例
May 29 Python
Python join()函数原理及使用方法
Nov 14 Python
Python离线安装openpyxl模块的步骤
Mar 30 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
opencv-python图像配准(匹配和叠加)的实现
Python初学者必备的文件读写指南
Jun 23 #Python
总结Python连接CS2000的详细步骤
python图片灰度化处理的几种方法
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
You might like
转生史莱姆:萌王第一次撸串开心到飞起,哥布塔撸串却神似界王神
2018/11/30 日漫
PHP利用COM对象访问SQLServer、Access
2006/10/09 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
深入file_get_contents与curl函数的详解
2013/06/25 PHP
php仿QQ验证码的实例分析
2013/07/01 PHP
PHP按行读取、处理较大CSV文件的代码实例
2014/04/09 PHP
php运行报错Call to undefined function curl_init()的最新解决方法
2016/11/20 PHP
PHP+原生态ajax实现的省市联动功能详解
2017/08/15 PHP
javascript表格隔行变色加鼠标移入移出及点击效果的方法
2015/04/10 Javascript
javascript的理解及经典案例分析
2016/05/20 Javascript
原生js三级联动的简单实现代码
2016/06/07 Javascript
Javascript作用域和作用域链原理解析
2020/03/03 Javascript
javascript中的offsetWidth、clientWidth、innerWidth及相关属性方法
2020/05/14 Javascript
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
Python入门篇之列表和元组
2014/10/17 Python
Python3中正则模块re.compile、re.match及re.search函数用法详解
2018/06/11 Python
使用python脚本实现查询火车票工具
2018/07/19 Python
python连接mongodb密码认证实例
2018/10/16 Python
Tensorflow实现酸奶销量预测分析
2019/07/19 Python
Python3操作Excel文件(读写)的简单实例
2019/09/02 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
python 监控logcat关键字功能
2020/09/04 Python
Python操作PostgreSql数据库的方法(基本的增删改查)
2020/12/29 Python
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
HTML5 Canvas图像模糊完美解决办法
2018/02/06 HTML / CSS
html5小技巧之通过document.head获取head元素
2014/06/04 HTML / CSS
英国儿童设计师服装和玩具购物网站:Zac & Lulu
2020/10/19 全球购物
工程监理应届生求职信
2013/11/09 职场文书
工业自动化专业毕业生推荐信
2013/11/18 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
2015年文员个人工作总结
2015/04/09 职场文书
开国大典观后感
2015/06/04 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
python神经网络编程之手写数字识别
2021/05/08 Python
详解JVM系列之内存模型
2021/06/10 Javascript
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL