Python办公自动化教程(008):设置excel单元格边框和背景颜色

3.2 添加边框

示例代码

python 复制代码
import openpyxl
from openpyxl.styles import Border, Side

# 1️⃣ 创建 Excel 工作簿
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = "球员信息"

# 2️⃣ 定义边框样式(细线边框)
thin_border = Border(
    left=Side(style="thin"),
    right=Side(style="thin"),
    top=Side(style="thin"),
    bottom=Side(style="thin"),
)

# 3️⃣ 写入数据
data = [
    ["球员", "球队"],
    ["凯文·杜兰特", "太阳"],
    ["德文·布克", "太阳"],
    ["布拉德利·比尔", "太阳"],
    ["克里斯·保罗", "勇士"],
    ["斯蒂芬·库里", "勇士"]
]

for row_idx, row in enumerate(data, start=1):  # 从 Excel 第 1 行开始
    for col_idx, value in enumerate(row, start=1):  # 从 Excel 第 1 列开始
        cell = sheet.cell(row=row_idx, column=col_idx, value=value)
        cell.border = thin_border  # 应用边框

# 4️⃣ 保存文件
wb.save("suns.xlsx")
wb.close()

实现效果

你可以更改 Side(style="thin") 来调整边框:

  • 细线Side(style="thin")
  • 粗线Side(style="thick")
  • 虚线Side(style="dashed")
  • 点线Side(style="dotted")
  • 双线Side(style="double")

3.3 设置背景颜色

示例代码

python 复制代码
import openpyxl
from openpyxl.styles import PatternFill, Border, Side, Font

# 1️⃣ 创建 Excel 工作簿
wb = openpyxl.Workbook()
sheet = wb.active
sheet.title = "球员信息"

# 2️⃣ 定义边框样式(细线边框)
thin_border = Border(
    left=Side(style="thin"),
    right=Side(style="thin"),
    top=Side(style="thin"),
    bottom=Side(style="thin"),
)

# 3️⃣ 定义填充颜色 & 字体样式
header_fill = PatternFill(fill_type="solid", fgColor="ffffff")  # 浅灰色(表头)
suns_fill = PatternFill(fill_type="solid", fgColor="FF8C00")  # 深橙色(太阳队)
warriors_fill = PatternFill(fill_type="solid", fgColor="00008B")  # 深蓝色(勇士队)
default_fill = PatternFill(fill_type="solid", fgColor="333333")  # 深灰色(其他球队)

# **字体样式**
header_font = Font(color="000000", bold=True)  # **表头字体:黑色 + 加粗**
white_font = Font(color="FFFFFF", bold=True)  # **数据字体:白色 + 加粗**

# 4️⃣ 写入数据
data = [
    ["球员", "球队"],  # 表头
    ["凯文·杜兰特", "太阳"],
    ["德文·布克", "太阳"],
    ["布拉德利·比尔", "太阳"],
    ["克里斯·保罗", "马刺"],
    ["斯蒂芬·库里", "勇士"],
    ["扬尼斯·阿德托昆博", "雄鹿"]
]

for row_idx, row in enumerate(data, start=1):  # 从 Excel 第 1 行开始
    # 5️⃣ 确定整行颜色
    if row_idx == 1:
        row_fill = header_fill  # **表头 浅灰色**
        row_font = header_font  # **表头字体 黑色**
    elif row[1] == "太阳":
        row_fill = suns_fill  # **太阳队 深橙色**
        row_font = white_font  # **白色字体**
    elif row[1] == "勇士":
        row_fill = warriors_fill  # **勇士队 深蓝色**
        row_font = white_font  # **白色字体**
    else:
        row_fill = default_fill  # **其他队伍 深灰色**
        row_font = white_font  # **白色字体**

    for col_idx, value in enumerate(row, start=1):  # 从 Excel 第 1 列开始
        cell = sheet.cell(row=row_idx, column=col_idx, value=value)
        cell.border = thin_border  # 应用边框
        cell.fill = row_fill  # 应用整行背景色
        cell.font = row_font  # 应用字体颜色

# 6️⃣ 保存文件
wb.save("nba_teams_header_black.xlsx")
wb.close()

实现效果

颜色自定义

  • 表头背景色 可调整 header_fill = PatternFill(fill_type="solid", fgColor="XXXXXX")
  • 表头字体颜色 header_font = Font(color="000000", bold=True)000000 为黑色)
  • 数据字体颜色 white_font = Font(color="FFFFFF", bold=True)FFFFFF 为白色)
相关推荐
CodexDave1 分钟前
Python 自动化接单实战(九):Windows 免环境交付如何打包与诊断
windows·python·自动化·python自动化·pyinstaller·软件交付·windows打包
CTA量化套保4 分钟前
2026年量化入门路线,概念规则和简单实现逐步走
人工智能·python
米码收割机8 分钟前
【Python】Python Django+Vue3校园自习室预约管理系统(源码+文档+PPT)【独一无二】
开发语言·python·django
AstartesEternal15 分钟前
python第二次作业(列表,字典)
开发语言·python
拉特莉的祈祷机17 分钟前
绿色测试日志为什么可能已经失效:用 AET 绑定命令与当前代码
python
三金1213833 分钟前
Python的一些内置模块
python
NPE~1 小时前
RAG 实战教程:从零构建企业智能问答 Agent
python·ai·实战·rag·agent搭建
BaoshengTT2 小时前
2026年双流区汽车贴膜种类及挑选要点保圣威固7V不凡门店
python
chatexcel2 小时前
ChatExcel AI Word 升级:多模态读资料、按模板生成、智能排版配图,还能批注修订和联动Excel 复核
人工智能·ai·word·excel·ai写作
zhiSiBuYu05172 小时前
Flask 请求与响应新手实战指南
后端·python·flask