一. excel的简介
openpyxl 是一个Python库,用于读取/写入Excel 2010 xlsx / xlsm / xltx / xltm文件。它的诞生是因为缺少可从Python本地读取/写入Office Open XML格式的库。
1. Excel文件的三个对象
workbook: 工作簿,一个excel文件包含多个sheet。
sheet:工作表,一个workbook有多个,表名识别,如“sheet1”,“sheet2”等。
cell: 单元格,存储数据对象
1、openpyxl 读写单元格时,单元格的坐标位置起始值是(1,1),即下标最小值为1,否则报错!
2、openpyxl 支持直接横纵坐标访问,如 A1,B2…
2. 创建工作簿
import openpyxl # 第三方模块 pip install openpyxl
# 1. 创建一个工作簿对象
work_book = openpyxl.Workbook()
print(work_book)
# 2. 创建表对象
sheet1 = work_book.create_sheet('表1')
print(sheet1)
"""数据填充要基于表格对象操作"""
# 方式一
# sheet1['C3'] = '哈哈'
# sheet1['A1'] = 'python'
# 方式二: 常用于循环
# sheet1.cell(row=1, column=1).value = '111111'
# sheet1.cell(row=2, column=2).value = '222222'
# 方式三: 在append()括号内穿一个序列, 那么会把这个序列作为一行写入到表格中去
sheet1.append([1,2,3,4,5])
sheet1.append((5,6,7,8,9))
sheet1.append({
'A': '12345', 'B': 'abcde'})
# 3. 保存工作簿对象
work_book.save('实例.xlsx')
2 案例–更加的直观
批量写入数据
import openpyxl
# 1. 创建一个工作簿对象
work_book = openpyxl.Workbook()
# 2. 创建表对象
# sheet1 = work_book.create_sheet('表1')
sheet1 = work_book.active # 使用默认的sheet表
"""数据填充要基于表格对象操作"""
# 写入9×9乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(f'{
j} x {
i} = {
j * i}', end='\t')
sheet1.cell(row=i, column=j).value = f'{
j} x {
i} = {
j * i}'
print()
# 3. 保存工作簿对象
work_book.save('实例.xlsx')
3. 读取表格的数据
import openpyxl
# 根据excel文件路径读取表格
work = openpyxl.load_workbook('实例.xlsx')
# 获取工作簿对象里面有几张表格
print(work.sheetnames)
# 根据表明在工作簿中提取表格
sheet = work['Sheet']
print(sheet.max_row) # 最大行
print(sheet.max_column) # 最大列
# # 获取第一行数据
# for i in range(1, sheet.max_column + 1):
# print(sheet.cell(row=1, column=i).value)
# # 获取第一列
# for j in range(1, sheet.max_row + 1):
# print(sheet.cell(row=j, column=1).value)
for i in range(1, sheet.max_column + 1):
for j in range(1, sheet.max_row + 1):
print(sheet.cell(row=i, column=j).value)
4. 注意:
在批量写入数据时,要把with open写在数据循环写入的前面,不然就会有一些错误,慢慢自己发现