使用 Python3 读写 Excel 文件 (xlsx) 的指南

在数据分析、科学研究等领域中,Excel 文件是一种常见的数据存储格式。随着 Python 编程语言的发展,许多库被开发出来,以简化对 Excel 文件的读写操作。本篇文章将介绍如何使用 Python 中的 openpyxl 库来读写 .xlsx 文件,同时提供示例代码,并用类图和序列图可视化相关的操作过程。

一、安装 openpyxl

在开始之前,你需要确保安装了 openpyxl 库。可以使用 pip 命令进行安装:

pip install openpyxl

二、读写 Excel 文件的基本操作

1. 创建一个新的 Excel 文件并写入数据

以下是创建一个新的 Excel 文件,并写入一些基本数据的示例代码:

import openpyxl

# 创建一个新的工作簿
workbook = openpyxl.Workbook()
sheet = workbook.active

# 写入数据
sheet['A1'] = '姓名'
sheet['B1'] = '年龄'
sheet['A2'] = '张三'
sheet['B2'] = 23
sheet['A3'] = '李四'
sheet['B3'] = 30

# 保存文件
workbook.save('example.xlsx')

2. 读取 Excel 文件的数据

接下来,我们将读取之前创建的 Excel 文件 example.xlsx,并打印里面的数据:

import openpyxl

# 加载工作簿
workbook = openpyxl.load_workbook('example.xlsx')
sheet = workbook.active

# 读取数据
for row in sheet.iter_rows(values_only=True):
    print(row)

通过这段代码,我们可以访问 Excel 文件中的每一行数据。

三、类图

在 Python 中,上述操作主要涉及到 WorkbookWorksheetCell 这三个类。下面是这三个类的关系图,用 mermaid 语法表示:

classDiagram
    class Workbook {
        +create_sheet()
        +save(filename)
    }
    class Worksheet {
        +cell(row, column)
        +iter_rows(values_only)
    }
    class Cell {
        +value
    }
    Workbook --> Worksheet : contains
    Worksheet --> Cell : contains

四、序列图

下面是操作的序列图,展示了创建 Excel 文件和读取数据的整个流程:

sequenceDiagram
    participant User
    participant Workbook
    participant Worksheet
    participant Cell

    User->>Workbook: create_workbook()
    Workbook->>Worksheet: active()
    Worksheet->>Cell: write_data()
    User->>Workbook: save("example.xlsx")
    
    User->>Workbook: load_workbook("example.xlsx")
    Workbook->>Worksheet: active()
    Worksheet->>Cell: iter_rows()
    Cell->>User: return data

五、更多功能

1. 添加图表

除了基本的读写操作,openpyxl 还支持向 Excel 文件中添加图表、格式化单元格等高级功能。你可以通过以下示例在工作表中添加柱状图:

from openpyxl.chart import BarChart, Reference

# 创建一段数据
data = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=3)
labels = Reference(sheet, min_col=1, min_row=2, max_row=3)

# 创建图表对象
chart = BarChart()
chart.add_data(data, titles_from_data=True)
chart.set_categories(labels)

# 将图表添加到工作表
sheet.add_chart(chart, "D5")

# 保存文件
workbook.save('example_with_chart.xlsx')

2. 设置单元格格式

我们也可以设置单元格的格式,例如字体和颜色:

from openpyxl.styles import Font, Color

# 设置字体加粗
font = Font(bold=True)
sheet['A1'].font = font
sheet['B1'].font = font

# 保存文件
workbook.save('example_styled.xlsx')

六、总结

通过本篇文章的介绍,我们了解了如何使用 Python 的 openpyxl 库读写 Excel 文件,并进行了简单的示例展示。除了基本的操作,openpyxl 还提供了丰富的功能,满足各种数据处理需求。希望这篇文章能帮助你更好地使用 Python 处理 Excel 文件。

无论是在数据分析、学术研究还是自动化办公中,掌握如何使用 Python 读写 Excel 文件都将为你带来更高的工作效率。如果你有其他问题,欢迎随时交流与探讨!