1. 基础概念
工作簿(workbook): 一个 Excel 电子表格文档;
工作表(sheet): 每个工作簿可以包含多个表, 如: sheet1, sheet2等;
活动表(active sheet): 用户当前查看的表;
列(column): 列地址是从 A 开始的;
行(row): 行地址是从 1 开始的;
单元格(cell): 特定行和列的方格;
2. 基础语法
语法 | 释义 |
---|---|
wb1 = Workbook() | 创建新的工作薄 |
wb = load_workbook(’./000.xlsx’) | 加载已存在的工作簿( # openpyxl只能处理 .xlsx 的表格) |
ws1 = wb.create_sheet(‘111’) | 创建新的工作表 |
ws2 = wb.active | 当前活动工作表 |
ws2.title | 工作表名称 |
ws = wb[‘Sheet1’] | 指定名称为Sheet1工作表 |
ws.max_row | 工作表的最大行号 |
ws.max_column | 工作表最大列号 |
wb.sheetnames | 已存在的全部工作簿 |
ws[‘A1’] | 选择工作表中A列1行的单个单元格 |
ws[‘A’] | 选择工作表中A列的值 |
ws[1] | 选择工作表中第一行值 |
cell=ws.cell(1,1) | 选择单个单元格,先行后列 |
cell.column | 单元格列索引 |
cell.row | 单元格行索引 |
cell.value | 单元格对应值 |
3. 常用示例
3.1 写入Excel文档
from openpyxl import Workbook
#使用模块中的Workbook()函数创建一个excel工作簿对象
wb_obj=Workbook()
#在excel文件对象中创建工作表sheet
wb1 = wb_obj.create_sheet('python工作表1', 0)
wb2 = wb_obj.create_sheet('python工作表2', 1)
#输出工作表的名称
print(wb1.title)
list=['A','B','C','D']
for key in list:
for index in range(1,5):
index=str(index)
#为工作表添加值
# 用法:wb1['工作簿中的表格位置']
wb1[key+index]='小可爱快下班哈'
#生成excel表格
wb_obj.save('python1.xlsx')
3.2 读取数据
from openpyxl import load_workbook
#获取当前工作目录所在的路径
dirpath = dirname(__file__)
# 打开文件
workbook = load_workbook(dirpath + '/python1.xlsx')
# 输出每个sheet的内容,其中workbook.sheetnames返回的是工作簿的所有工作表
for key in workbook.sheetnames:
sheet = workbook[key]
for row in range(2, sheet.max_row + 1):
print('******************分割线**********************')
for column in range(1, sheet.max_column + 1):
print(sheet.cell(1,column).value,':',sheet.cell(row,column).value)