openpyxl使用(一)

openpyxl

openpyxl 是一个用于读写 excel 文件的 python 库。本篇文章目的主要介绍如何使用 openpyxl 处理 excel 文件。

安装 openpyxl

pip install openpyxl

创建一个工作簿

  • 使用 Workbook 创建一个空工作簿(默认带有一个 sheet)
from openpyxl import Workbook
wb = Workbook()
  • 使用 load_workbook 根据已有 excel 文件创建工作簿
from openpyxl import load_workbook
wb = load_workbook(filename='fileName.xlsx')

根据工作簿创建和获取工作表 Sheet

  • 查看 excel 含有哪些 Sheet
sheet_list = wb.sheetnames
  • 获取默认选中(激活)的 Sheet
ws = wb.active
  • 根据 Sheet 名获取指定的 Sheet
ws = wb['SheetName']
  • 获取每一个 Sheet
for sheet in wb:
    print(sheet)
  • 创建 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()

修改 Sheet 标题

ws.title = 'customName'

复制一个 Sheet

注意:Sheet 中含有的图片和图标不会被复制。工作簿和工作簿之间也不能复制 Sheet,以只读或者只写的模式打开工作簿也不能复制

wb.copy_worksheet(ws)

操作 Sheet 中的数据

获取 Sheet 中的单个单元格

  • 方法一
cell = ws['A1']
# 也可以给单元格赋值
ws['A1'] = '哈哈'
  • 方法二:使用 cell() 方法
# 三个参数 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']
  • iter_rowsiter_cols 方法获取指定单位的行和列单元格
# 获取两行两列的单元格范围
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')

你可能感兴趣的:(python,excel,python)