详解Pandas与openpyxl库的超强结合

周予安
周予安
发布时间:2026-10-14| 3人浏览过
原创

本文介绍如何在Python中结合使用Pandas和openpyxl库,实现高效的数据处理与Excel电子表格样式定制。内容涵盖DataFrame与工作簿的双向转换方法,以及如何通过openpyxl为Pandas处理后的数据添加字体、颜色和对齐等自定义样式,满足复杂报表需求。

前言

熟悉Pandas和openpyxl库的用户应当了解,这两者在功能上具有显著的互补性。Pandas无疑是Python生态中处理Excel数据最高效且便捷的工具,然而,openpyxl在自定义电子表格方面拥有独特优势,例如能够轻松实现单元格样式调整和条件格式设置。

当用户既希望利用Pandas快速处理Excel数据,又需要为生成的表格添加特定的视觉样式时,该如何操作?

实际上,您无需在两者之间做出艰难取舍。

openpyxl原生支持将Pandas DataFrame数据转换为Excel工作簿,同时也支持将现有的openpyxl工作簿数据反向转换为Pandas DataFrame,实现了双向的数据交互。

DataFrame转工作簿

首先,我们构建一个示例DataFrame对象:


import pandas as pd

data = {
    "姓名": ["张三", "李四"],
    "性别": ["男", "女"],
    "年龄": [15, 25],
}
df = pd.DataFrame(data)
df

生成的输出结果如下所示:


若希望将表头字体设置为红色并居中对齐,具体应如何配置?


from openpyxl import Workbook
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl.styles import Font 
from openpyxl.styles import Alignment 

wb = Workbook()
ws = wb.active

for row in dataframe_to_rows(df, index=False, header=True):
    ws.append(row)
    
font = Font(name="微软雅黑",size=10, bold=True,italic=False,color="FF0000")
alignment = Alignment(horizontal="center",vertical="center")
    
for i in range(1,df.shape[1]+1):
    cell = ws.cell(row=1, column=i)
    print(cell.value)
    cell.font = font
    cell.alignment = alignment
    
wb.save("pandas.xlsx")

应用样式后的结果如下:

工作簿转DataFrame

面对现有的Excel数据,若需将其转换为DataFrame格式,应如何操作?


从常规流程来看,直接使用Pandas读取Excel文件,处理数据后再进行样式设计似乎更为直接。那么,为何还要特意通过openpyxl来读取工作簿呢?

尽管看似多此一举,但既然openpyxl提供了此类功能,我们不妨一探究竟。


import pandas as pd
from openpyxl import load_workbook

workbook = load_workbook(filename="df_to_openpyxl.xlsx")
sheet = workbook.active

values = sheet.values
df = pd.DataFrame(values)   
df

转换后的结果如下:

至此,关于Pandas与openpyxl库结合使用的详细介绍已告一段落。如需了解更多相关内容,欢迎查阅本站往期文章或继续浏览后续内容,感谢大家的支持!

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。