读取 Excel 文件
from openyxl import load_workbook
# 默认读写, 可使用参数 read_only 指定
path = "test.xlsx"
wb = load_workbook(path)
获取工作表
# 获取所有 sheet 名称
sheet_name_list = wb.get_sheet_names()
# 根据sheet name 获取 sheet
sheet01 = wb.get_sheet_by_name("Sheet1")
# 获取 sheet name
sheet_name = sheet01.title
# 获取当前正在显示的 sheet, 也可用 wb.get_active_sheet()
sheet = wb.active
获取单元格
# 获取某个单元格的值
a = sheet["A1"]
# 分别返回, 返回的数字是 int
print(f'({a.column}, {a.row}) is {a.value}')
# 除了下标, 可以使用 cell 函数, 换成下标, 这个表示 B1
b = sheet.cell(row=1, column=2)
获取最大行和最大列
获取行和列
sheet.rows 为生成器, 里面是每一行的数据, 每一行又由一个 tuple 包裹 sheet.columns 类似, 不过里面每个 tuple 是每一列的单元格
# 按行, 返回 A1, B1, C1 这样的顺序
for row in sheet.rows:
for cell in row:
print(cell.value)
# 按列, 返回 A1, A2, A3 这样的顺序
for column in sheet.columns:
for cell in column:
print(cell.value)
以上代码可以获得所有单元格数据. 因为 sheet.rows 是生成器类型, 不能使用索引, 需要转换成 list
# 获取第一行的 tuple 对象
for cell in list(sheet.rows)[0]:
print(cell.value)