本教程内容为: Python 利用 openpyxl 库操作 Excel 来实现日常办公场景的自动化(包括读写Excel,设置样式等)
本教程包含日常生活工作中的绝大多数应用场景,欢迎补充。
创建工作簿或者加载工作簿
from openpyxl import Workbook
from openpyxl import load_workbook
# 创建新的工作簿
wb = Workbook()
# 加载已有工作簿, 读取过大的excel时用read_only=True,更快写入用write_only=True
wb = load_workbook(filename='',read_only=False)
# 保存
wb.save(filename='1.xlsx')
# 关闭
wb.close()
# 另存为流
from tempfile import NamedTemporaryFile
with NamedTemporaryFile() as tmp:
wb.save(tmp.name)
tmp.seek(0)
stream = tmp.read()
工作表操作
from openpyxl import Workbook
wb = Workbook()
# 获取默认活动表
ws = wb.active
# 获取指定表
ws = wb['sheet_name']
# 创建指定名称的sheet
ws = wb.create_sheet(title='sheet_name', index=0) # index: 0 1 -1...
# 更改表名称
ws.title = 'new_sheet_name'
# 更改工作表选项卡背景色
ws.sheet_properties.tabColor = '1072BA'
# 查看所有表名称
print(wb.sheetnames)
# 单个工作簿之间创建工作表副本
ws2 = wb.copy_worksheet(ws)
# 折叠行或列
ws.row_dimensions.group(1, 10, hidden=True)
ws.column_dimensions.group('A', 'D', hidden=True)
单元格操作
from openpyxl import Workbook
wb = Workbook()
ws = wb.active
# 获取单元格
cell = ws['A2']
# 单元格赋值
cell.value = 'A2'
ws['A5'] = 5
ws.cell(row=2, column=3,value=10)
# 访问多个 cell
cell_range = ws['A1':'C4']
# 获取某行
row10 = ws[10]
# 获取某列
colC = ws['C'