10分钟带你玩转openpyxl

本文介绍了Python的openpyxl模块,用于读写.xlsx格式的Excel文件。openpyxl提供创建、写入和读取数据的功能,适合处理03年之后的Excel版本。文章详细展示了创建工作簿、写入数据到单元格、读取数据的方法,并提醒在读取时可以通过data_only参数获取公式结果。
摘要由CSDN通过智能技术生成

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进行占位
'''

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2iW5QKIU-1644845398604)(C:/Users/yuxihan/AppData/Roaming/Typora/typora-user-images/image-20220214211757673.png)]

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官网

  • 7
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

go&Python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值