Python openpyxl 库使用详解

openpyxl 是一个用于读取和写入 Excel 2010 xlsx/xlsm/xltx/xltm 文件的库。对于需要处理 Excel 文件的 Python 开发者来说,openpyxl 是一个非常流行且强大的工具。

1. 安装 openpyxl

首先,在使用 openpyxl 之前,你需要确保已安装该库。可以通过 pip 来安装:

pip install openpyxl

2. 基本操作

2.1 创建一个 Excel 工作簿

要创建一个新的 Excel 文件,可以使用 Workbook 类:

from openpyxl import Workbook

# 创建一个工作簿
workbook = Workbook()

# 激活当前的工作表
sheet = workbook.active

# 给工作表命名
sheet.title = "示例表格"

# 在单元格中写入数据
sheet['A1'] = "姓名"
sheet['B1'] = "年龄"
sheet['A2'] = "张三"
sheet['B2'] = 30

# 保存工作簿到文件
workbook.save("示例.xlsx")
2.2 读取 Excel 文件

读取现有的 Excel 文件也很简单,通过 load_workbook 函数实现:

from openpyxl import load_workbook

# 加载 Excel 文件
workbook = load_workbook("示例.xlsx")

# 选择工作表
sheet = workbook["示例表格"]

# 读取数据
name = sheet['A2'].value
age = sheet['B2'].value

print(f"姓名: {name}, 年龄: {age}")

3. 数据处理

openpyxl 不仅可以读写单元格,还能处理数据范围、格式、样式等。

3.1 写入多行数据

我们可以使用循环来写入一系列数据:

data = [
    ["姓名", "年龄"],
    ["张三", 30],
    ["李四", 25],
    ["王五", 28]
]

for row in data:
    sheet.append(row)

# 保存工作簿
workbook.save("示例.xlsx")
3.2 读取多个单元格的数据

可以使用 .iter_rows() 方法来遍历行,或者 .iter_cols() 方法遍历列:

for row in sheet.iter_rows(min_row=2, max_col=2, max_row=sheet.max_row):
    for cell in row:
        print(cell.value, end=" ")
    print()

4. 格式化单元格

对单元格的样式进行格式化是一个关键需求:

from openpyxl.styles import Font, Color, Border, Side

# 设置字体样式
bold_font = Font(bold=True)

# 应用样式
for cell in sheet["1:1"]:
    cell.font = bold_font

# 设置边框样式
thin_border = Border(left=Side(style='thin'),
                     right=Side(style='thin'),
                     top=Side(style='thin'),
                     bottom=Side(style='thin'))

for row in sheet.iter_rows(min_row=1, max_col=2, max_row=4):
    for cell in row:
        cell.border = thin_border

# 保存工作簿
workbook.save("示例.xlsx")

5. 过滤和排序数据

使用 openpyxl 同样可以实现 Excel 的数据筛选和排序功能,但这些功能相对复杂,通常需要结合Python的其他数据处理库。

总结

openpyxl 是一个功能强大的 Excel 文件处理库,适合各种数据处理需求。通过简单的 API,用户可以快速创建、读取、修改和格式化 Excel 文件。在数据科学和数据分析领域,熟练掌握 openpyxl 有助于提高工作效率。无论是生成报告、数据汇总还是复杂的数据分析,openpyxl 都能够为 Python 开发者提供强大的支持。

点赞(0) 打赏

微信小程序

微信扫一扫体验

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部