openpyxl模块
1.excel文件的后缀名针对版本的不同是不同的
03版本之前:.xls
03版本之后:.xlsx
2.在python能够操作excel表格的模块有很多
openpyxl模块
最近几年比较流行的模块
该模块可以操作03版本之后的文件
针对03版本之前的兼容性可能不太好
xlrd、wlwt模块
xlrd控制读文件,wlwt控制写文件
该模块可以操作任何版本的excel文件
3.excel本质并不是一个文件
修改excel文件后缀名至.zip即可查看
(下载第三方模块:pip3 install openpyxl)
创建文件
(在使用openpyxl模块操作excel文件的时候一定要确保文件是关闭状态)
from openpyxl import Workbook
1.创建一个对象
wb = Workbook()
3.创建多个工作簿
wb1 = wb.create_sheet('学生表') wb2 = wb.create_sheet('课程表')
4.还可以指定工作簿的顺序
w3 = wb.create_sheet('老师表',0)
5.create_sheet方法会返回当前被创建的工作簿对象
w3.title = '教师表' # 工作簿名称支持二次修改 w3.sheet_properties.tabColor = "1072BA "# 修改工作簿名称样式 print(wb.sheetnames) # 查看当前excel文件所有的工作簿名称
2.保存文件
wb.save(r'1.xlsx')
如何写数据
from openpyxl import Workbook wb = Workbook() wb1 = wb.create_sheet('数据统计',0)
写入数据方式1
wb1['A1'] = 111 wb1['A2'] = 222
写入数据方式2
wb1.cell(column=1,row=3,value=333) # cell意思是单元格
写入数据方式3
wb1.append(['序号', '姓名', '年龄', '性别']) # 定义表头数据 wb1.append([1, 'jason', 28, 'male']) # 存储表单数据 wb1.append([2, 'tony', 38, 'female']) # 存储表单数据 wb1.append([3, 'kevin', 28, 'male']) # 存储表单数据 wb1.append([4, 'kevin1', 'male']) # 存储表单数据 wb1.append([5, 'kevin2', 'female']) # 存储表单数据 wb1.append([5, 'kevin2', '', 'female']) # 存储表单数据 wb1.append([5, 'kevin2', 88, None]) # 存储表单数据
(append是按照行数一行行录入数据)
写入计算公式
wb1["A9"] = '=sum(A2:A8)'
wb.save(r'2.xlsx')
如何读数据
from openpyxl import load_workbook
1.指定要读取的表格文件
wb = load_workbook(r'2.xlsx',data_only=True)
2.先查看工作簿名称,并指定你要操作的工作簿
print(wb.sheetnames) # ['数据统计','Sheet']
3.指定操作的工作簿
wb1 = wb['数据统计'] # wb1指代的就是数据统计的工作簿
读取数据的方式1
print(wb1['B2'].value) # 获取普通数据 print(wb1['A9'].value) # 获取公式 =SUM(A2:A8)
如果在读取数据的时候不想获取公式本身而是公式的结果需要指定data_only参数
wb = load_workbook(r'2.xlsx',data_only=True)
读取数据的方式2
print(wb1.cell(row=3,column=2).value) 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) print(wb1.max_column)