openpyxl是一个强大的Python库,可以方便地处理Excel文件。它提供了丰富的API来创建、读取、修改和格式化Excel文件。掌握这些基本操作后,你可以轻松地进行数据分析和报表生成等工作。
openpyxl使用介绍
openpyxl是一个用于读写Excel文件的Python库,它支持.xlsx和.xlsm等格式的文件操作。本文将详细介绍openpyxl的基本用法和常用功能。
安装openpyxl
基本概念
在使用openpyxl之前,需要理解几个核心概念:
- Workbook(工作簿):Excel文件本身
- Worksheet(工作表):工作簿中的单个工作表
- Cell(单元格):工作表中的单个单元格
- Row(行):工作表中的一行数据
- Column(列):工作表中的一列数据
创建新的Excel文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws = wb['Sheet1']
ws['A1'] = 'Hello' ws['B1'] = 'World'
wb.save('example.xlsx')
|
读取Excel文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| from openpyxl import load_workbook
wb = load_workbook('example.xlsx')
ws = wb.active
cell_value = ws['A1'].value print(cell_value)
cell_value = ws.cell(row=1, column=1).value print(cell_value)
|
写入数据
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| from openpyxl import Workbook
wb = Workbook() ws = wb.active
ws['A1'] = '姓名' ws['B1'] = '年龄' ws['A2'] = '张三' ws['B2'] = 25
ws.cell(row=1, column=3, value='城市') ws.cell(row=2, column=3, value='北京')
ws.append(["李四", "20", "上海"])
wb.save('data.xlsx')
|
遍历工作表
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| from openpyxl import load_workbook
wb = load_workbook('data.xlsx') ws = wb.active
for row in ws.iter_rows(values_only=True): print(row)
for row in ws['A1:C2']: for cell in row: print(cell.value, end=' ') print()
|
操作工作表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| from openpyxl import Workbook
wb = Workbook()
ws1 = wb.create_sheet('Sheet2')
ws1.title = '新工作表'
wb.remove(wb['Sheet1'])
print(wb.sheetnames)
|
格式化单元格
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| from openpyxl import Workbook from openpyxl.styles import Font, Alignment, PatternFill
wb = Workbook() ws = wb.active
ws['A1'] = '标题' ws['A1'].font = Font(name='Arial', size=16, bold=True)
ws['A1'].alignment = Alignment(horizontal='center', vertical='center')
ws['A1'].fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')
wb.save('styled.xlsx')
|
处理公式
1 2 3 4 5 6 7 8 9 10 11
| from openpyxl import Workbook
wb = Workbook() ws = wb.active
ws['A1'] = 10 ws['A2'] = 20 ws['A3'] = '=SUM(A1:A2)'
wb.save('formula.xlsx')
|
实际应用示例
下面是一个实际应用的例子:将CSV数据导入Excel文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| import csv from openpyxl import Workbook
def csv_to_excel(csv_file, excel_file): wb = Workbook() ws = wb.active
with open(csv_file, 'r', encoding='utf-8') as f: reader = csv.reader(f) for row_idx, row in enumerate(reader, 1): for col_idx, value in enumerate(row, 1): ws.cell(row=row_idx, column=col_idx, value=value)
wb.save(excel_file)
|