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中用has_key()方法查找键是否存在的教程
May 21 Python
python绘制条形图方法代码详解
Dec 19 Python
Python读取指定日期邮件的实例
Feb 01 Python
浅谈Python中eval的强大与危害
Mar 13 Python
Python socket模块实现的udp通信功能示例
Apr 10 Python
Python实现字典按key或者value进行排序操作示例【sorted】
May 03 Python
python 图片去噪的方法示例
Jul 09 Python
kali中python版本的切换方法
Jul 11 Python
Django之使用celery和NGINX生成静态页面实现性能优化
Oct 08 Python
keras 简单 lstm实例(基于one-hot编码)
Jul 02 Python
python爬虫---requests库的用法详解
Sep 28 Python
python Xpath语法的使用
Nov 26 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
opencv-python图像配准(匹配和叠加)的实现
Python初学者必备的文件读写指南
Jun 23 #Python
总结Python连接CS2000的详细步骤
python图片灰度化处理的几种方法
详解Python中的进程和线程
详解Go语言运用广度优先搜索走迷宫
You might like
Drupal7 form表单二次开发要点与实例
2014/03/02 PHP
50个PHP程序性能优化的方法
2014/06/02 PHP
php实现根据词频生成tag云的方法
2015/04/17 PHP
Zend Framework实现多服务器共享SESSION数据的方法
2016/03/22 PHP
php写一个函数,实现扫描并打印出自定目录下(含子目录)所有jpg文件名
2017/05/26 PHP
关于onScroll事件在IE6下每次滚动触发三次bug说明
2011/09/21 Javascript
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
写JQuery插件的基本知识
2013/11/25 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
Extjs实现下拉菜单效果
2016/04/01 Javascript
node.js文件上传处理示例
2016/10/27 Javascript
JavaScript中的工厂函数(推荐)
2017/03/08 Javascript
koa router 多文件引入的方法示例
2019/05/22 Javascript
使用Angular material主题定义自己的组件库的配色体系
2019/09/04 Javascript
vue动态循环出的多个select出现过的变为disabled(实例代码)
2019/11/10 Javascript
Vue+Java 通过websocket实现服务器与客户端双向通信操作
2020/09/22 Javascript
electron踩坑之dialog中的callback解决
2020/10/06 Javascript
Tornado Web服务器多进程启动的2个方法
2014/08/04 Python
Python实现的双色球生成功能示例
2017/12/18 Python
5个很好的Python面试题问题答案及分析
2018/01/19 Python
Python实现批量执行同目录下的py文件方法
2019/01/11 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
Python爬虫程序架构和运行流程原理解析
2020/03/09 Python
在echarts中图例legend和坐标系grid实现左右布局实例
2020/05/16 Python
大数据分析用java还是Python
2020/07/06 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
澳大利亚最早和最古老的巨型游戏专家:Yardgames
2020/02/20 全球购物
95%的面试官都会问到的50道Java线程题,附答案
2012/08/03 面试题
工商管理系学生的自我评价分享
2013/11/29 职场文书
2014三八妇女节活动总结
2014/03/01 职场文书
学校三节实施方案
2014/06/09 职场文书
班级联欢会主持词
2015/07/03 职场文书
php+laravel 扫码二维码签到功能
2021/05/15 PHP
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
再谈python_tkinter弹出对话框创建
2022/03/20 Python