from openpyxl import load_workbook
# 只能打开已经存在的表格,不能用该方法创建一个新的表格
workbook = load_workbook(filename='test.xlsx')
# 通过sheet名称获取表格 如果只有一张表,可以直接打开
sheet = workbook.active
# 向某个格子写入内容并保存
cell = sheet['A1']
cell.value = '你好'
# 用python列表数据插入一行
data = (
['张三', 1],
['李四', 2],
['王五', 3],
)
for row in data:
sheet.append(row) # 会接在表格内已有数据后面
# 查看openpyxl支持的公式
from openpyxl.utils import FORMULAE
print(FORMULAE)
# 插入公式 直接赋值公式字符串
sheet['B5'] = '=AVERAGE(B2:B4)'
# 插入一列 在idx列左边插入一列 amount要插入的列数
sheet.insert_cols(idx=2, amount=3)
# 插入一列 在idx列上边插入一行 amount要插入的行数
sheet.insert_rows(idx=2, amount=3)
# 删除列 从idx这一列开始,包括这一列
sheet.delete_cols(idx=2, amount=3)
# 移动格子 正整数为向下或向右,负整数为向左或向上
sheet.move_range('C1:D4', rows=2, cols=-2) # 向下移2行,向左移2列
# 创建新的sheet
workbook.create_sheet('表格1')
# 删除一个sheet
sheet = workbook['表格2']
workbook.remove(sheet)
# 复制一个sheet
workbook.copy_worksheet(sheet)
# 修改表格名称
sheet.title = '表格1'
# 创建新的excel表格文件
from openpyxl import Workbook
wb = Workbook()
sheet = wb.active
sheet.title = '表格1'
workbook.save(filename='new.xlsx')
# 冻结窗格
sheet.freeze_panes = 'B2'
# 添加筛选
sheet.auto_filter.ref = sheet.dimensions
# 修改后记得保存
workbook.save(filename='test.xlsx')