openpyxl 是一个用于读写 excel 文件的 python 库。本篇文章目的主要介绍如何使用 openpyxl 处理 excel 文件。
pip install openpyxl
from openpyxl import Workbook
wb = Workbook()
from openpyxl import load_workbook
wb = load_workbook(filename='fileName.xlsx')
sheet_list = wb.sheetnames
ws = wb.active
ws = wb['SheetName']
for sheet in wb:
print(sheet)
# 在最后一个位置创建 Sheet
ws1 = wb.create_sheet('mySheet')
# 在第一个位置创建 Sheet
ws2 = wb.create_sheet('mySheet', 0)
# 在倒数第二个位置创建 Sheet
ws3 = wb.create_sheet('mySheet', -1)
# 也可以不传参数,它创建的 Sheet 名称默认由 Sheet 到 Sheetn 依次递增
ws4 = create_sheet()
ws.title = 'customName'
注意:Sheet 中含有的图片和图标不会被复制。工作簿和工作簿之间也不能复制 Sheet,以只读或者只写的模式打开工作簿也不能复制
wb.copy_worksheet(ws)
cell = ws['A1']
# 也可以给单元格赋值
ws['A1'] = '哈哈'
# 三个参数 row:第几行 column:第几列 value:单元格的值(不传 value 则表示获取当前单元格)
ws.cell(row=1, column=1, value='哈哈')
# 表示获取三行四列的单元格
cells = ws['A1':'D3']
# 获取第一行
row_one = ws[1]
# 第二列
col_two = ws['B']
# 第二行到第三行
row_range = ws[2:3]
# 第一列到第四列
col_range = ws['A':'D']
# 获取两行两列的单元格范围
ws.iter_rows(min_col=1, max_col=2, min_row=1, max_row=2)
ws.iter_cols(min_col=1, max_col=2, min_row=1, max_row=2)
# 所有行
rows = ws.rows
# 所有列
cols = ws.columns
vals = ws.values
print(tuple(vals))
# values_only 标识为 True 表示只获取单元格的值
vals = ws.iter_rows(values_only=True)
print(tuple(vals))
vals = ws.iter_cols(values_only=True)
print(tuple(vals))
for cell in ws[1]:
# 单元格的 value 属性
print(cell.value)
一系列的操作结束后,可以使用 save 方法将最终修改后的工作簿保存为一个文件
# 如果存在同名的文件则会进行覆盖且不会有任何警告
wb.save('myWb.xlsx')