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 为白色)
相关推荐
Scott9999HH5 小时前
【IIoT流量实战】蒸汽管道阀门全关却仍有流量?用 Python 实现涡街信号 FFT 频谱分析与温压全补偿积算网关,深度拆解靠谱的涡街流量计厂家硬核技术标准
开发语言·python
AI云海6 小时前
python 列表、元组、集合和字典
开发语言·python
二十雨辰6 小时前
[爬虫]-Urllib
爬虫·python
玉鸯8 小时前
Agent Hook:在概率推理之上,为 Agent 叠加确定性控制
python·langchain·agent
weixin_446260859 小时前
HACO:面向动态部署环境的对冲式智能计算可靠多智能体调度框架
后端·python·flask
我的xiaodoujiao9 小时前
API 接口自动化测试详细图文教程学习系列32--Allure测试报告2
python·学习·测试工具·pytest
qetfw9 小时前
MXU:Tauri 2 + React 的 MaaFramework 跨平台 GUI 源码
前端·python·react.js·前端框架·开源项目·效率工具
用户83562907805110 小时前
Python 实现 Excel 页面布局与打印设置自动化
后端·python
一次旅行10 小时前
Python+大模型端到端自动化日报系统
开发语言·python·自动化