10分钟带你玩转openpyxl
文章目录
- openpyxl模块
- openpyxl介绍
- openpyxl使用
- 1. 下载openpyxl模块
- 2. 创建文件
- 3. 写数据
- 4. 读数据
openpyxl模块
openpyxl介绍
openpyxl模块是最近几年比较流行的用python操作xlsl表格的模块,除此之外还有xlrd(xlrd控制读文件),wlwt等模块(wlwt控制写文件)
注意:excel文件后缀名针对版本不同是不同的,主要的是03年之前(.xls),03年之后的(.xlsx),openpyxl针对03版本之前的兼容性可能不太好,因此03年之前建议选用其他模块,如xlrd和wlwt模块
补充: excel 本质上并不是一个文件,可以看成是一个小程序,修改excel文件后缀名至.zip即可查看
openpyxl使用
1. 下载openpyxl模块
- openpyxl模块是一个第三方模块,因此需要下载使用
pip3 install openpyxl
2. 创建文件
from openpyxl import Workbook# 1. 创建一个对象
wb = Workbook()# 3.创建多个工作蒲 create_sheet(title,index) title=》工作蒲名字 index=》索引,工作蒲顺序
wb1 = wb.create_sheet('学生表')
wb2 = wb.create_sheet('课程表')
wb3 = wb.create_sheet('老师表',0)wb3.title = '教师表' # 工作蒲名称支持二次修改# 保存文件
wb.save(r'../openpy.xlsx')
3. 写数据
注意: 在使用openpyxl模块操作excel文件的时候一定要确保文件是关闭状态, 否则会报错
from openpyxl import Workbook# 1. 创建一个对象
wb = Workbook()wb1 = wb.create_sheet('统计数据',0)
# 写入数据方式1 通过excel表格的坐标轴来输入数据
# wb1['A1'] = 111# 写入数据的方式2 cell 方法
# wb1.cell(row=3, column=1, value=333) # row 代表行 column代表列# 写入数据的方式3 append
wb1.append(['序号', '姓名', '年龄', '性别'])
wb1.append([1, 'tom1', 18, 'male'])
wb1.append([2, 'tom2', 18, 'male'])
wb1.append([3, 'tom3', 18, 'male'])
wb1.append([4, 'tom4', 18, 'male'])
wb1.append([5, 'tom5', 'male'])
wb1.append([6, 'tom6', 18, 'male', 'eat'])
wb1.append([7, ' ', 18, None])
wb1.append([8, ' ', '=sum(C2:C8)',None]) # 三种方式都能写入计算公式
'''
需要注意的是append方法是一行一行的写入,因此如果数据缺少了点或者多了点
都是能正常写入文件的,但是顺序就不能保证了,解决方法使用空字符串或者None进行占位
'''
4. 读数据
前言: 虽然openpyxl模块能读取数据,不过由于其功能没有numpy方便,因此openpyxl用来写入数据较多
from openpyxl import load_workbook# 1.指定要读取的表格文件
wb = load_workbook(r'2.xlsx')# 2.先查看工作簿名称 并指定你要操作的工作簿
print(wb.sheetnames) # ['数据统计', 'Sheet'] # 3.指定操作的工作簿
wb1 = wb['数据统计'] # wb1指代的就是数据统计的工作簿# 读取数据的方式1
print(wb1['B2'].value) # 获取普通数据
print(wb1['C9'].value) # 获取公式
"""
如果在读取数据的时候不想获取公式本身而是公式的结果需要指定data_only参数wb = load_workbook(r'2.xlsx', data_only=True)
"""
# 读取数据的方式2
print(wb1.cell(row=3, column=2).value)# 获取所有行的数据,wb1.rows指所有行的数据,row是每一行的数据,两者都是一个可迭代对象,
for row in wb1.rows:for r in row:print(r.value)
# 获取所有列的数据
for col in wb1.columns:for c in col:print(c.value)# 获取最大的行数和列数
print(wb1.max_row) # 9
print(wb1.max_column) # 4
补充: openpyxl 基本操作就这些,掌握这些平时也就够用了,更多请查看openpyxl官网
10分钟带你玩转openpyxl相关推荐
- java编程石头剪刀布图片_石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源...
原标题:石头.剪刀.布!10分钟带你打开深度学习大门,代码已开源 沉沉 发自 宇宙中心 量子位 出品 | 公众号 QbitAI 深度学习技术的不断普及,越来越多的语言可以用来进行深度学习项目的开发,即 ...
- 10分钟带你探索css中更为奇妙的奥秘
10分钟带你探索css中更为奇妙的奥秘
- 10分钟带你学会微信小程序的反编译
以xxxxx小程序为例10分钟带你学会微信小程序的反编译 2019-11-28 12:59:26 以一个简单的例子介绍下小程序反编译操作流程 实验环境 前置准备 模拟器内软件安装 获取小程序包 开始解 ...
- 来吧,1分钟带你玩转Kafka
[摘要] Kafka让人又爱又恨?来吧,一分钟带你玩转它 说起Kafka,许多使用者对它是又爱又恨.Kafka是一种分布式的.基于发布/订阅的消息系统,其极致体验让人欲罢不能,但操心的运维.复杂的安全 ...
- 10分钟带你了解python_10分钟Python入门系列教程及学习资源分享
本期分享笔记内容 归档此前入门教程文章,方便查看 10分钟带你Python入门的特点 简单谈下如何寻找Python学习资源 关于分享Python学习资源的分享问题 本人对于Python学习创建了一个小 ...
- 10分钟带你彻底搞懂微内核架构
文章目录 十分钟搞懂系列 什么是微内核架构? 如何实现微内核架构? 总结 十分钟搞懂系列 序号 标题 链接 1 10分钟带你彻底搞懂企业服务总线 https://blog.csdn.net/belon ...
- 10分钟带你彻底搞懂服务限流和服务降级
文章目录 十分钟搞懂系列 服务限流 计数器法 滑动窗口法 漏桶算法 令牌桶算法 服务降级 十分钟搞懂系列 序号 标题 链接 1 10分钟带你彻底搞懂企业服务总线 https://blog.csdn.n ...
- 10分钟带你了解MSTP协议,附加配置MSTP实验
10分钟带你了解MSTP协议,附加配置MSTP实验 目录 10分钟带你了解MSTP协议,附加配置MSTP实验 一 MSTP协议 [1]STP和RSTP的局限性 [2]关于MSTP [3]MSTP的基本 ...
- 10分钟带你彻底搞懂负载均衡
文章目录 十分钟搞懂系列 负载均衡是如何保证软件系统的生产部署的? 负载均衡分发策略 请求由谁来分发? 服务器端负载均衡器 客户端负载均衡 请求分发到哪去? 静态负载均衡算法 动态负载均衡算法 十分钟 ...
最新文章
- php 类 init,基于initPHP的框架介绍
- 2014年JAVA省赛B组---第四题---大衍数列
- ping不通自己的ip地址_如何批量Ping N个IP地址,掌握一个命令让你节省N小时,让老板给你加鸡腿!...
- 套用表格格式转化为普通区域_学会修改表格格式,让你的报表更美观
- 如何解决EXCEL中的科学计数法
- idea war包和jar包区别 以及用maven如何打包
- 软件单元测试(Unit Test )最佳实践
- 7z001怎么解压在安卓手机上面_安卓手机怎么设置网易企业邮箱
- linux php服务器搭建,如何搭建linux服务器
- 解决Vsphere Client 60天过期问题
- 如何用深度学习对几种类型的图片进行分类(tensorflow,CNN)
- win10系统 笔记本 插入耳机有声音,外放无声音
- 巧妙的实现一套键鼠无缝控制两台联网的主机
- 计算机网络一、什么是计算机网络
- 流程驱动管理vs 数据驱动管理
- 课程设计——模仿网易云UI设计基础(超简单版)
- Excel常见技巧GIF示例
- abaqus各种文件说明
- 全局阙值分割中的直方图算法和熵算法
- 关于举办“2021全国高校计算机视觉实战暑期教师研修班”的通知
热门文章
- 共享充电宝行业面临狼来了,新进入者疑似滥用垄断权力
- pdf转word需要密码怎么办?几个方法教你解决
- java 坦克重叠_Java实现支持双黑两人激战的 坦克大战源码(经典游戏)
- 疯狂猜图抄袭与火爆伴生 将面临生命周期难题
- NeuroSolutions for Excel这个功能可以实现多种神经网络嘛?
- rockplayer_ffmpeg在AOSP中的编译
- Docker基础入门getting started
- 华为畅享20pro怎么样
- 美国高校开课教你“修手机”!只为减少电子垃圾
- Springboot项目多模块打包jar移动到指定目录,docker打jar包构建镜像部署并运行