零基础带你掌握Python Openpyxl单元格样式修改指南

 更新时间:2026年03月26日 08:15:52   作者:小庄-Python办公  
在日常办公中,我们经常需要处理大量的 Excel 表格,本篇文章将系统地带你走进 openpyxl 的样式修改世界,无论你是编程小白还是有一定基础的学习者,只要跟着本文的步骤,都能轻松让你的自动化表格漂亮起来

引言

在日常办公中,我们经常需要处理大量的 Excel 表格。虽然用 Python 提取和写入数据非常高效,但如果交给老板或客户的表格毫无排版、密密麻麻,阅读体验将会大打折扣。

这时候,为 Excel 添加合适的**样式(Styles)**就显得尤为重要。加粗标题、标记高亮颜色、居中对齐、添加边框……这些操作都可以通过 Python 的 openpyxl 库自动完成。

本篇文章将系统地带你走进 openpyxl 的样式修改世界。无论你是编程小白还是有一定基础的学习者,只要跟着本文的步骤,都能轻松让你的自动化表格“漂亮”起来!

准备工作

在开始编写代码之前,我们需要确保环境已经准备就绪:

安装 Python 环境:确保你的电脑上已经安装了 Python(推荐 3.7 及以上版本)。

安装 openpyxl 库:打开你的命令行终端(Windows 用户打开 cmd 或 PowerShell,Mac 用户打开 Terminal),输入以下命令并回车:

pip install openpyxl

基础概念认知:你需要知道在 openpyxl 中,Workbook 代表整个工作簿(Excel文件),Worksheet 代表工作表(Sheet),而 Cell 代表具体的单元格(如 A1)。

核心指南:一步步修改Excel样式

openpyxl 中,所有的样式功能都存放在 openpyxl.styles 模块下。修改样式的核心逻辑非常简单:导入样式类 -> 实例化样式对象 -> 将其赋值给单元格的对应属性

我们需要用到的主要样式类包括:

  • Font(字体)
  • PatternFill(填充/背景色)
  • Alignment(对齐方式)
  • BorderSide(边框)

下面我们逐一拆解。

1. 字体样式修改 (Font)

我们可以修改字体的名称、大小、粗细、斜体以及颜色。

from openpyxl import Workbook
from openpyxl.styles import Font

wb = Workbook()
ws = wb.active
cell = ws['A1']
cell.value = "这是测试字体"

# 创建字体对象
# name: 字体名称, size: 字号, bold: 加粗, italic: 斜体, color: 16进制颜色代码(不带#)
custom_font = Font(name='微软雅黑', size=14, bold=True, italic=True, color='FF0000')

# 将字体应用到单元格
cell.font = custom_font

2. 单元格填充与背景色 (PatternFill)

想给重要的数据加上背景色高亮?使用 PatternFill

from openpyxl.styles import PatternFill

cell = ws['B1']
cell.value = "高亮背景"

# fill_type='solid' 表示纯色填充,fgColor 设置前景色(即背景显示的颜色)
custom_fill = PatternFill(fill_type='solid', fgColor='FFFF00') # 纯黄背景

cell.fill = custom_fill

3. 对齐方式 (Alignment)

调整文字的水平居中、垂直居中,或者设置自动换行。

from openpyxl.styles import Alignment

cell = ws['C1']
cell.value = "居中对齐\n自动换行"

# horizontal: 水平对齐 (center, left, right)
# vertical: 垂直对齐 (center, top, bottom)
# wrap_text: 自动换行 (True/False)
custom_alignment = Alignment(horizontal='center', vertical='center', wrap_text=True)

cell.alignment = custom_alignment

4. 边框设置 (Border & Side)

设置边框稍微复杂一点,我们需要先用 Side 定义线条的样式(粗细、颜色),然后再用 Border 将线条应用到单元格的上下左右。

from openpyxl.styles import Border, Side

cell = ws['D1']
cell.value = "带边框的单元格"

# 定义线条样式 (border_style 可以是 'thin', 'thick', 'dashed', 'dotted' 等)
thin_side = Side(border_style='thin', color='000000') # 黑色细线

# 将线条应用到边框的四个方向
custom_border = Border(left=thin_side, right=thin_side, top=thin_side, bottom=thin_side)

cell.border = custom_border

5. 综合实战:制作一个漂亮的表头

让我们把上面的知识结合起来,编写一段完整的代码,生成一个带有漂亮表头的 Excel 文件。

from openpyxl import Workbook
from openpyxl.styles import Font, PatternFill, Alignment, Border, Side

def create_styled_excel():
    # 1. 创建工作簿和工作表
    wb = Workbook()
    ws = wb.active
    ws.title = "销售报表"

    # 2. 准备表头数据
    headers = ['日期', '产品名称', '销售额', '负责人']
    ws.append(headers)

    # 3. 定义表头样式
    header_font = Font(name='黑体', size=12, bold=True, color='FFFFFF') # 白色粗体
    header_fill = PatternFill(fill_type='solid', fgColor='4F81BD')      # 蓝色背景
    header_align = Alignment(horizontal='center', vertical='center')    # 居中对齐
    
    thin_side = Side(border_style='thin', color='000000')
    header_border = Border(left=thin_side, right=thin_side, top=thin_side, bottom=thin_side)

    # 4. 循环遍历第一行的单元格,应用样式
    for cell in ws[1]:
        cell.font = header_font
        cell.fill = header_fill
        cell.alignment = header_align
        cell.border = header_border
        
        # 顺便调整一下列宽,让表格更美观
        ws.column_dimensions[cell.column_letter].width = 15

    # 5. 保存文件
    wb.save("Styled_Report.xlsx")
    print("Excel文件生成成功,样式已应用!")

if __name__ == "__main__":
    create_styled_excel()

常见避坑指南

对于初学者来说,在使用 openpyxl 设置样式时,经常会遇到以下几个“坑”:

  • 颜色代码不要加 #:在 HTML/CSS 中,颜色通常写成 #FF0000。但在 openpyxl 中,颜色参数采用的是 aRGB 十六进制格式,必须省略 #(例如:直接写 FF0000 代表红色)。
  • 样式对象不能直接应用于单元格区域(Range):你不能直接写 ws['A1:D1'].font = font。如果你想给多个单元格设置样式,必须使用 for 循环遍历每一个单元格并分别赋值(如上方综合实战代码所示)。
  • 样式对象是不可变的(Immutable):一旦你把一个 Font 对象赋值给了一个单元格,如果你想改变其中一个属性,不能直接修改 cell.font.bold = True。你需要重新创建一个新的 Font 对象并重新赋值,或者使用 copy() 方法。

总结与学习资源

通过本文,我们系统地学习了如何使用 Python 和 openpyxl 库来美化 Excel 表格。从字体、背景色、对齐方式到边框,掌握了这四大核心模块,你就已经具备了制作专业级自动化报表的能力。

编程是一门实践的艺术,建议你立即打开代码编辑器,将本文的实战代码运行一遍,并尝试修改其中的颜色和字体,看看会发生什么变化。

进阶学习资源推荐:

  • Openpyxl 官方文档https://openpyxl.readthedocs.io/ (最权威的参考手册,建议遇到生僻需求时查阅)。
  • 十六进制颜色码查询:在搜索引擎输入“RGB颜色对照表”,可以帮助你找到心仪的表格配色代码。

以上就是零基础带你掌握Python Openpyxl单元格样式修改指南的详细内容,更多关于Python Openpyxl修改单元格样式的资料请关注脚本之家其它相关文章!

相关文章

  • Python图片转gif方式(将静态图转化为分块加载的动态图)

    Python图片转gif方式(将静态图转化为分块加载的动态图)

    这篇文章主要介绍了Python图片转gif方式(将静态图转化为分块加载的动态图),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Django 实现外键去除自动添加的后缀‘_id’

    Django 实现外键去除自动添加的后缀‘_id’

    今天小编就为大家分享一篇Django 实现外键去除自动添加的后缀‘_id’,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Python跨文件调用函数以及在一个文件中执行另一个文件

    Python跨文件调用函数以及在一个文件中执行另一个文件

    这篇文章主要给大家介绍了关于Python跨文件调用函数以及在一个文件中执行另一个文件的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友可以参考下
    2022-12-12
  • Python代码调用执行shell踩坑解决

    Python代码调用执行shell踩坑解决

    这篇文章主要为大家介绍了Python代码调用执行shell,踩过的坑解决方法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • Python绘制随机彩色蟒蛇方法浅析

    Python绘制随机彩色蟒蛇方法浅析

    这篇文章主要介绍了python实现绘制随机彩色蟒蛇的效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • python3 线性回归验证方法

    python3 线性回归验证方法

    今天小编就为大家分享一篇python3 线性回归验证方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python多进程库multiprocessing中进程池Pool类的使用详解

    Python多进程库multiprocessing中进程池Pool类的使用详解

    这篇文章主要介绍了Python多进程库multiprocessing中进程池Pool类的使用详解,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-11-11
  • Python复制目录结构脚本代码分享

    Python复制目录结构脚本代码分享

    这篇文章主要介绍了Python复制目录结构脚本代码分享,本文分析了需求、讲解了匿名函数lambda等内容,并给出了脚本代码,需要的朋友可以参考下
    2015-03-03
  • pytorch 准备、训练和测试自己的图片数据的方法

    pytorch 准备、训练和测试自己的图片数据的方法

    这篇文章主要介绍了pytorch 准备、训练和测试自己的图片数据的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • PyTorch之怎样选择合适的优化器和损失函数

    PyTorch之怎样选择合适的优化器和损失函数

    这篇文章主要介绍了PyTorch怎样选择合适的优化器和损失函数问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02

最新评论