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 09 Python
在Python中使用itertools模块中的组合函数的教程
Apr 13 Python
Python验证码识别的方法
Jul 10 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
matplotlib作图添加表格实例代码
Jan 23 Python
Python命令行click参数用法解析
Dec 19 Python
python实现飞行棋游戏
Feb 05 Python
python输出pdf文档的实例
Feb 13 Python
Python任务自动化工具tox使用教程
Mar 17 Python
Python Web项目Cherrypy使用方法镜像
Nov 05 Python
用Python实现职工信息管理系统
Dec 30 Python
Python集合set()使用的方法详解
Mar 18 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
opencv-python图像配准(匹配和叠加)的实现
Python初学者必备的文件读写指南
Jun 23 #Python
总结Python连接CS2000的详细步骤
python图片灰度化处理的几种方法
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
You might like
php 变量定义方法
2009/06/14 PHP
防止本地用户用fsockopen DDOS攻击对策
2011/11/02 PHP
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
实例讲解PHP中使用命名空间
2019/01/27 PHP
Thinkphp5+plupload实现的图片上传功能示例【支持实时预览】
2019/05/08 PHP
Laravel中如何轻松容易的输出完整的SQL语句
2020/07/26 PHP
用 Javascript 验证表单(form)中的单选(radio)值
2009/09/08 Javascript
JavaScript内核之基本概念
2011/10/21 Javascript
js获取某月的最后一天日期的简单实例
2013/06/22 Javascript
js 为label标签和div标签赋值的方法
2013/08/08 Javascript
js单词形式的运算符
2014/05/06 Javascript
node.js中的path.basename方法使用说明
2014/12/09 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
jQuery使用before()和after()在元素前后添加内容的方法
2015/03/26 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
jQuery遍历json的方法(推荐)
2016/06/12 Javascript
JS锚点的设置与使用方法
2016/09/05 Javascript
jQuery插件FusionCharts绘制的3D双柱状图效果示例【附demo源码】
2017/04/20 jQuery
原生JS实现隐藏显示图片 JS实现点击切换图片效果
2021/01/27 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
vue.js异步上传文件前后端实现代码
2017/08/22 Javascript
AngularJS模态框模板ngDialog的使用详解
2018/05/11 Javascript
Vue使用JSEncrypt实现rsa加密及挂载方法
2020/02/07 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
Ubuntu 下 vim 搭建python 环境 配置
2017/06/12 Python
Python排序算法实例代码
2017/08/10 Python
Sanic框架蓝图用法实例分析
2018/07/17 Python
在SQLite-Python中实现返回、查询中文字段的方法
2019/07/17 Python
wxPython窗体拆分布局基础组件
2019/11/19 Python
如何利用python进行时间序列分析
2020/08/04 Python
CSS3实现多背景模拟动态边框的效果
2016/11/08 HTML / CSS
在校生汽车维修实习自我鉴定
2013/09/19 职场文书
大学生学年自我鉴定
2014/02/10 职场文书
房屋租赁合同协议书范本
2014/10/19 职场文书
Java spring定时任务详解
2021/10/05 Java/Android