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