前言
openpyxl 是一个用于读写 Excel 文件(.xlsx)的 Python 库。它支持 Excel 2010 及更高版本的文件格式。openpyxl 提供了一种方便的方式来操作 Excel 文件,包括读取和写入单元格数据、创建和修改工作表、设置样式以及执行其他与 Excel 相关的操作。
以下是一些 openpyxl 的主要特点:
1.支持 .xlsx 格式:openpyxl 主要用于处理 Excel 2010 及更新版本的 .xlsx 文件。
2.读写 Excel 文件:你可以使用 openpyxl 读取现有的 Excel 文件,获取数据,修改数据,并保存到新的文件中。
3.操作单元格:openpyxl 允许你按行、列或具体的单元格进行数据的读取和写入。
4.创建和修改工作表:你可以创建新的工作表,复制和删除现有的工作表,设置工作表的属性等。
5.样式设置:openpyxl 允许你设置单元格的字体、颜色、边框等样式。
6.图表和公式:你可以通过 openpyxl 创建图表、添加公式等。
7.支持数字和日期格式:openpyxl 能够正确处理数字和日期格式,确保在 Excel 中显示正确的格式。
一.安装
pip install openpyxl
二.导入
from openpyxl import Workbook
二.基本用法
1.写入excel数据
from openpyxl import Workbook
# 创建一个工作簿(Workbook)
workbook = Workbook()
# 获取默认的活动工作表(Worksheet)
sheet = workbook.active
# sheet = workbook.get_sheet_by_name('Sheet1')
# 在单元格 A1,B1 写入数据
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'
# 保存工作簿到文件
workbook.save('writeExcle.xlsx')
2.写入一行数
# 定义要写入的一行数据
data_row = ['a', 'b', 'c']
# 将一行数据写入工作表
sheet.append(data_row)
3.写入指定行数据
# 定义要写入的一行数据
data_row = ['a', 'b', 'c']
# 指定要写入的行号
row_number = 2 # 例如,写入到第二行
# 将一行数据写入指定行
for col_num, value in enumerate(data_row, start=1):
sheet.cell(row=row_number, column=col_num, value=value)
4.读指定单元格数据
from openpyxl import load_workbook
# 加载现有的工作簿
workbook = load_workbook('example.xlsx')
# 获取默认的活动工作表
sheet = workbook.active
# 读取单元格数据
value_A1 = sheet['A1'].value
value_B1 = sheet['B1'].value
print(f'A1: {value_A1}, B1: {value_B1}')
5.遍历每一行数据
from openpyxl import load_workbook
# 加载现有的工作簿
workbook = load_workbook('example.xlsx')
# 获取默认的活动工作表
sheet = workbook.active
# 遍历每一行
for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, values_only=True):
print(row)
6.遍历指定列数据
# 指定要遍历的列(例如,列 A)
target_column = 'A'
# 遍历指定列的每一行
for cell in sheet[target_column]:
print(cell.value)
7.遍历多列数据
# 指定要遍历的列范围(例如,列 A 到列 C)
start_column = 'A'
end_column = 'B'
# 遍历指定列范围的每一行
for row in sheet.iter_cols(min_col=sheet[start_column][0].column, max_col=sheet[end_column][0].column, values_only=True):
print(row)
8.设置字体样式
from openpyxl.styles import Font
# 创建字体样式
font = Font(name='Arial', size=12, bold=True, italic=True)
# 将字体样式应用到单元格
cell.font = font
9.设置颜色
from openpyxl.styles import Font
# 创建字体样式,设置颜色为红色
font = Font(color='FF0000')
# 将字体样式应用到单元格
cell.font = font
10.设置边框样式
from openpyxl.styles import Border, Side
# 创建边框样式
border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))
# 将边框样式应用到单元格
cell.border = border
11.设置填充样式
from openpyxl.styles import PatternFill
# 创建填充样式,设置背景颜色为黄色
fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')
# 将填充样式应用到单元格
cell.fill = fill
12.设置货币格式
cell.number_format = '$#,##0.00'
13.设置日期格式
# 设置单元格为日期时间格式
cell.number_format = 'YYYY-MM-DD HH:MM:SS'
14.插入图片
from openpyxl.drawing.image import Image
# 创建一个 Image 对象,并指定要插入的图片文件路径
image_path = 'test.jpg'
image = Image(image_path)
# 设置图片的位置和大小
# 假设我们要将图片插入到单元格 A1 中
cell = 'A1'
image.anchor = cell
image.width = 100
image.height = 100
# 将图片插入到工作表中
worksheet.add_image(image)
三.使用注意事项
- 文件格式支持:确保您操作的是.xlsx或.xlsm格式的文件,因为openpyxl不支持旧版的.xls格式。如果需要处理.xls文件,可以考虑将其转换为.xlsx格式后再使用openpyxl进行处理。
- 安装库:在使用openpyxl之前,需要先进行安装。可以通过pip命令进行安装:pip install openpyxl。
- 公式和函数:在写入公式时,需要在公式字符串前面加上等号(=),并确保使用的是Excel支持的函数和语法。
- 样式设置:openpyxl允许通过设置样式来美化Excel文件,包括字体、颜色、边框等。在进行样式设置时,可以参考相关的示例代码来了解具体的操作方法。
- 性能考虑:在处理大型Excel文件时,需要注意内存的使用情况,因为openpyxl会将整个工作簿加载到内存中。这可能会对系统资源造成较大压力,尤其是在处理非常庞大的数据集时。
- 保存工作:在对Excel文件进行修改后,记得及时保存工作,以免数据丢失。
- 版本兼容性:由于openpyxl是基于Office Open XML标准,所以在使用特定功能时,需要考虑Excel版本的兼容性问题。