目录
  • openpyxl模块

  • 创建文件
  • 写数据
  • 读数据

openpyxl模块理论前戏

1.excel文件的后缀名针对版本的不同是不同的
    03版本之前:.xls
    03版本之后:.xlsx

2.在python能够操作excel表格的模块
    1.openpyxl模块
            该模块可以操作03版本的之后的文件
            针对03版本之前的兼容性可能不太好
    2.xlrd、xlwt模块
        xlrd控制读文件 xlwt控制写文件
            该模块可以操作任何版本的excel文件

 额外知识

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

openpyxl模块_表单

 

 创建文件

from openpyxl import Workbook

# 1.创建一个对象
wb = Workbook()


# 2.保存文件
wb.save(r'aaa.xlsx')

openpyxl模块_表单_02

 

"""在使用openpyxl模块操作excel文件的时候一定要确保文件是关闭状态"""

openpyxl模块_表单_03

 创建多个工作簿

# wb.create_sheet('学生表')
# wb = wb.create_sheet('工作表')


# 还可以指定工作簿的顺序
wb.create_sheet('老师表', 0)

openpyxl模块_创建文件_04

 其他知识

wb1 = wb.create_sheet('学生表')
wb2 = wb.create_sheet('工作')
w3 = wb.create_sheet('老师表', 0)
# create_sheet方法会返回当前被创建的工作簿对象
w3.title = '教师表'  # 工作簿名称支持二次修改

openpyxl模块_表单_05

 

 修改工作簿名称样式

w3.sheet_properties.tabColor = "1072BA"

查看当前excel文件所有的工作簿名称

print(wb.sheetnames)

openpyxl模块_创建文件_06

 

 如何写数据

方式一

from openpyxl import Workbook

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


wb.save(r'bbb.xlsx')

openpyxl模块_表单_07

 

 方式二

from openpyxl import Workbook

wb = Workbook()
wb1 = wb.create_sheet('数据统计', 0)
# 写入数据
wb1.cell(column=1, row=3, value=333)  # cell意思是单元格


wb.save(r'bbb.xlsx')

openpyxl模块_读取数据_08

 

 方式三

from openpyxl import Workbook

wb = Workbook()
wb1 = wb.create_sheet('数据统计', 0)
# 写入数据
wb1.append(['序号', '姓名', '年龄', '性别'])  # 定义表头数据
wb1.append([1, 'jason', 28, 'male'])  # 存储表单数据
wb1.append([2, 'tony', 38, 'female'])  # 存储表单数据
wb1.append([3, 'kevin', 28, 'male'])  # 存储表单数据
"""
append是按照行数一行行录入数据
"""

wb.save(r'bbb.xlsx')

openpyxl模块_读取数据_09

 

 注意事项

# 有几个字段就写几个内容,可用空代替
wb1.append([4, 'kevin1', 'male'])  # 存储表单数据
wb1.append([5, 'kevin2', 'female'])  # 存储表单数据

# 如何解决
wb1.append([5, 'kevin2', '', 'female'])  # 存储表单数据
wb1.append([5, 'kevin2', 88, None])  # 存储表单数据

 如何读数据

方式一

from openpyxl import load_workbook

# 1.指定要读取的表格文件
wb = load_workbook(r'bbb.xlsx',)
# 2.先查看工作簿名称 并指定你要操作的工作簿print(wb.sheetnames)  # ['数据统计', 'Sheet']
# 3.指定操作的工作簿
wb1 = wb['数据统计']  # wb1指代的就是数据统计的工作簿

# 读取数据
print(wb1['B2'].value)  # 获取普通数据

注意事项

如果在读取数据的时候不想获取公式本身而是公式的结果需要指定data_only参数

wb = load_workbook(r'2.xlsx', data_only=True)
print(wb.sheetnames)  # ['数据统计', 'Sheet']
wb1 = wb['数据统计']  # wb1指代的就是数据统计的工作簿
print(wb1['B2'].value)  # 获取普通数据
print(wb1['A9'].value)  # 获取公式  =SUM(A2:A8)

openpyxl模块_读取数据_10

 

 方式二

print(wb1.cell(row=3, column=2).value)

获取每行和每列数据

openpyxl模块_读取数据_11openpyxl模块_读取数据_12
# 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
View Code

openpyxl模块_数据统计_13