openpyxl模块

openpyxl模块

excel文件后缀名

针对不同的版本,excel文件的后缀名是不同的。

03版本之前:.xls

03版本之后:.xlsx

 

python操作excel表格的模块

openpyxl模块

最近几年比较流行的模块,可以操作03版本之后的文件,对于03版本之前的文件兼容性可能不好。

 

xlrd、wlwt模块

xlrd控制读文件,wlwt控制写文件,该模块可以操作任何版本的excel文件。

 

excel的本质

excel本质并不是一个文件,修改excel文件后缀名为.zip即可查看。

 

创建文件

在使用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')

 

如何写数据

写入方式1

from openpyxl import Workbook

wb = Workbook()
wb1 = wb.create_sheet('数据统计', 0)
# 写入数据方式1
wb1['A1'] = 111
wb1['A2'] = 222

wb.save(r'2.xlsx')

 

写入方式2

from openpyxl import Workbook

wb = Workbook()
wb1 = wb.create_sheet('数据统计', 0)

# 写入数据方式2
wb1.cell(column=1, row=3, value=333)  # cell意思是单元格

wb.save(r'2.xlsx')

 

写入方式3

from openpyxl import Workbook

wb = Workbook()
wb1 = wb.create_sheet('数据统计', 0)

# 写入数据方式3
wb1.append(['序号', '姓名', '年龄', '性别'])  # 定义表头数据
wb1.append([1, 'jyb', 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是按照行数一行行录入数据
"""

wb.save(r'2.xlsx')

 

如何读数据

读取方式1

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

from openpyxl import load_workbook

# 1.指定要读取的表格文件
wb = load_workbook(r'2.xlsx', data_only=True)
# 2.先查看工作簿名称 并指定你要操作的工作簿
print(wb.sheetnames)  # ['数据统计', 'Sheet']
# 3.指定操作的工作簿
wb1 = wb['数据统计']  # wb1指代的就是数据统计的工作簿
# 读取数据的方式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)

 

posted @ 2021-09-23 22:39  wddwyw  阅读(94)  评论(0编辑  收藏  举报