文章目录

  • 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相关推荐

  1. java编程石头剪刀布图片_石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源...

    原标题:石头.剪刀.布!10分钟带你打开深度学习大门,代码已开源 沉沉 发自 宇宙中心 量子位 出品 | 公众号 QbitAI 深度学习技术的不断普及,越来越多的语言可以用来进行深度学习项目的开发,即 ...

  2. 10分钟带你探索css中更为奇妙的奥秘

    10分钟带你探索css中更为奇妙的奥秘

  3. 10分钟带你学会微信小程序的反编译

    以xxxxx小程序为例10分钟带你学会微信小程序的反编译 2019-11-28 12:59:26 以一个简单的例子介绍下小程序反编译操作流程 实验环境 前置准备 模拟器内软件安装 获取小程序包 开始解 ...

  4. 来吧,1分钟带你玩转Kafka

    [摘要] Kafka让人又爱又恨?来吧,一分钟带你玩转它 说起Kafka,许多使用者对它是又爱又恨.Kafka是一种分布式的.基于发布/订阅的消息系统,其极致体验让人欲罢不能,但操心的运维.复杂的安全 ...

  5. 10分钟带你了解python_10分钟Python入门系列教程及学习资源分享

    本期分享笔记内容 归档此前入门教程文章,方便查看 10分钟带你Python入门的特点 简单谈下如何寻找Python学习资源 关于分享Python学习资源的分享问题 本人对于Python学习创建了一个小 ...

  6. 10分钟带你彻底搞懂微内核架构

    文章目录 十分钟搞懂系列 什么是微内核架构? 如何实现微内核架构? 总结 十分钟搞懂系列 序号 标题 链接 1 10分钟带你彻底搞懂企业服务总线 https://blog.csdn.net/belon ...

  7. 10分钟带你彻底搞懂服务限流和服务降级

    文章目录 十分钟搞懂系列 服务限流 计数器法 滑动窗口法 漏桶算法 令牌桶算法 服务降级 十分钟搞懂系列 序号 标题 链接 1 10分钟带你彻底搞懂企业服务总线 https://blog.csdn.n ...

  8. 10分钟带你了解MSTP协议,附加配置MSTP实验

    10分钟带你了解MSTP协议,附加配置MSTP实验 目录 10分钟带你了解MSTP协议,附加配置MSTP实验 一 MSTP协议 [1]STP和RSTP的局限性 [2]关于MSTP [3]MSTP的基本 ...

  9. 10分钟带你彻底搞懂负载均衡

    文章目录 十分钟搞懂系列 负载均衡是如何保证软件系统的生产部署的? 负载均衡分发策略 请求由谁来分发? 服务器端负载均衡器 客户端负载均衡 请求分发到哪去? 静态负载均衡算法 动态负载均衡算法 十分钟 ...

最新文章

  1. php 类 init,基于initPHP的框架介绍
  2. 2014年JAVA省赛B组---第四题---大衍数列
  3. ping不通自己的ip地址_如何批量Ping N个IP地址,掌握一个命令让你节省N小时,让老板给你加鸡腿!...
  4. 套用表格格式转化为普通区域_学会修改表格格式,让你的报表更美观
  5. 如何解决EXCEL中的科学计数法
  6. idea war包和jar包区别 以及用maven如何打包
  7. 软件单元测试(Unit Test )最佳实践
  8. 7z001怎么解压在安卓手机上面_安卓手机怎么设置网易企业邮箱
  9. linux php服务器搭建,如何搭建linux服务器
  10. 解决Vsphere Client 60天过期问题
  11. 如何用深度学习对几种类型的图片进行分类(tensorflow,CNN)
  12. win10系统 笔记本 插入耳机有声音,外放无声音
  13. 巧妙的实现一套键鼠无缝控制两台联网的主机
  14. 计算机网络一、什么是计算机网络
  15. 流程驱动管理vs 数据驱动管理
  16. 课程设计——模仿网易云UI设计基础(超简单版)
  17. Excel常见技巧GIF示例
  18. abaqus各种文件说明
  19. 全局阙值分割中的直方图算法和熵算法
  20. 关于举办“2021全国高校计算机视觉实战暑期教师研修班”的通知

热门文章

  1. 共享充电宝行业面临狼来了,新进入者疑似滥用垄断权力
  2. pdf转word需要密码怎么办?几个方法教你解决
  3. java 坦克重叠_Java实现支持双黑两人激战的 坦克大战源码(经典游戏)
  4. 疯狂猜图抄袭与火爆伴生 将面临生命周期难题
  5. NeuroSolutions for Excel这个功能可以实现多种神经网络嘛?
  6. rockplayer_ffmpeg在AOSP中的编译
  7. Docker基础入门getting started
  8. 华为畅享20pro怎么样
  9. 美国高校开课教你“修手机”!只为减少电子垃圾
  10. Springboot项目多模块打包jar移动到指定目录,docker打jar包构建镜像部署并运行