详解Pandas与openpyxl库的超强结合
本文介绍如何在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库结合使用的详细介绍已告一段落。如需了解更多相关内容,欢迎查阅本站往期文章或继续浏览后续内容,感谢大家的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









