OpenPyXL教程学习笔记

OpenPyXL是一个功能强大的Python库,用于处理Excel文件,允许读取、编辑和创建Excel工作簿和工作表。以下是OpenPyXL的详细教程:

一、安装OpenPyXL

要使用OpenPyXL,首先需要安装它。可以使用pip进行安装:

pip install openpyxl

二、打开或保存文件

  1. 打开已有文件
import openpyxl
path = '文件路径'  # 例如“C://test.xlsx”
workbook = openpyxl.load_workbook(path)
  1. 新建文件
import openpyxl
workbook = openpyxl.Workbook()

新建文件或者完成写入文件内容后需要保存才能生效:

workbook.save('文件路径')  # 例如“C://new_example.xlsx”

三、工作表操作

  1. 创建新的工作表
workbook.create_sheet(title='新工作表名称', index=位置索引)  # title可省略,系统自动命名;index可省略,默认插在工作表末尾
  1. 获取工作表

    • 通过工作表名获取指定工作表:
    sheet = workbook['工作表名称']
    
    • 获取当前活跃的工作表:
    sheet = workbook.active
    
    • 获取所有工作表:
    sheet_list = workbook.sheetnames
    
  2. 复制工作表

copied_sheet = workbook.copy_worksheet(workbook['要复制的工作表名称'])
copied_sheet.title = '复制的工作表名称'
  1. 删除工作表
del workbook['要删除的工作表名称']
  1. 修改工作表的名称
sheet = workbook['要修改的工作表名称']
sheet.title = '新的工作表名称'

四、读写数据

  1. 读取指定单元格数据

    • 指定单元格名称读取数据:
    cell_value = sheet['A1'].value
    
    • 通过行列索引读取数据:
    cell_value = sheet.cell(row=2, column=3).value
    
  2. 读取指定范围内的数据

    • 获取工作表中已有全部数据:
    all_values = list(sheet.values)
    
    • 获取指定范围内的值:
    cells = sheet['A1:B2']
    for row in cells:
    	for cell in row:
    		print(cell.value)
    
  3. 写入数据

    • 单个单元格中插入数据:
    sheet['A1'] = 'Hello'
    
    • 多条数据插入到单元格:
    data = [['a', 1], ['b', 2], ['c', 3]]
    for row in data:
    	sheet.append(row)
    

五、设置格式

  1. 合并/拆分单元格

    • 合并单元格:
    sheet.merge_cells('A1:C1')
    
    • 拆分单元格(需要先取消合并):
    sheet.unmerge_cells('A1:C1')
    
  2. 设置字体样式

from openpyxl.styles import Font
font = Font(name='Arial', bold=True, size=14)
sheet['A1'].font = font
  1. 设置背景颜色
from openpyxl.styles import PatternFill
fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')
sheet['B2'].fill = fill
  1. 设置边框
from openpyxl.styles import Border, Side
border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))
sheet['C3'].border = border
  1. 其他设置

    • 调整行高和列宽:
    sheet.row_dimensions[1].height = 30  # 设置第1行高度
    sheet.column_dimensions['A'].width = 20  # 设置A列宽度
    
    • 冻结窗格:
    sheet.freeze_panes = 'D2'  # 冻结D2单元格以上的行和列
    
    • 添加筛选功能:
    sheet.auto_filter.ref = 'A1:C10'  # 设置筛选范围
    

你可能感兴趣的:(python学习笔记,python)