python - excel 设置样式

文章目录

  • 前言
    • [python - excel 设置样式](#python - excel 设置样式)
      • [1. 准备](#1. 准备)
      • [2. 示例](#2. 示例)
        • [2.1. 给单元格设置样式"等线"、大小为24磅、斜体、红色颜色和粗体](#2.1. 给单元格设置样式"等线"、大小为24磅、斜体、红色颜色和粗体)
        • [2.2. 给第二行设置样式"宋体"、大小为16磅、斜体、红色颜色和粗体](#2.2. 给第二行设置样式"宋体"、大小为16磅、斜体、红色颜色和粗体)
        • [2.3. 给第三行数据设置垂直居中和水平居中](#2.3. 给第三行数据设置垂直居中和水平居中)
        • [2.4. 给第四行设置行高为30](#2.4. 给第四行设置行高为30)
        • [2.5. 给第五行设置列宽为15](#2.5. 给第五行设置列宽为15)
        • [2.6. 给A列设置列宽为 30](#2.6. 给A列设置列宽为 30)
        • [2.7. 在A1单元格应用边框样式](#2.7. 在A1单元格应用边框样式)
        • [2.8. 完整demo](#2.8. 完整demo)

前言

  如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊,写作不易啊^ _ ^。

  而且听说点赞的人每天的运气都不会太差,实在白嫖的话,那欢迎常来啊!!!


python - excel 设置样式

1. 准备

准备一个无样式的excel

生成demo可以看这里
python- excel 创建/写入/删sheet+花式遍历

2. 示例

2.1. 给单元格设置样式"等线"、大小为24磅、斜体、红色颜色和粗体
java 复制代码
import os

from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment, Color, Border, Side


def listdir(file_path):
    paths = os.listdir(file_path)
    print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')
    return paths


if __name__ == '__main__':
    path = 'D:\pythonExcel'
    try:
        fileName = listdir(path)
        file_path = os.path.join(path, fileName[0])
        # 打开已有文件
        wb = load_workbook(file_path)
        # 创建一个新的sheet
        newSheet = wb["NewSheet"]
        # 设置新sheet为活动sheet
        wb.active = newSheet
        # 输入等线 24号,加粗斜体,字体颜色红色。
        # 直接使用cell的font属性,将Font对象赋值给它
        # 声明样式
        bold_italic_24_font = Font(name='等线', size=24, italic=True, color=Color(rgb="FF0000"), bold=True)

        # 给单元格设置样式
        newSheet['A1'].font = bold_italic_24_font

        wb.save(file_path)

    except Exception as e:
        print(f"Exception : {e}")
2.2. 给第二行设置样式"宋体"、大小为16磅、斜体、红色颜色和粗体
python 复制代码
import os

from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment, Color, Border, Side


def listdir(file_path):
    paths = os.listdir(file_path)
    print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')
    return paths


if __name__ == '__main__':
    path = 'D:\pythonExcel'
    try:
        fileName = listdir(path)
        file_path = os.path.join(path, fileName[0])
        # 打开已有文件
        wb = load_workbook(file_path)
        # 创建一个新的sheet
        newSheet = wb["NewSheet"]
        # 设置新sheet为活动sheet
        wb.active = newSheet
        # 输入等线 24号,加粗斜体,字体颜色红色。
        # 直接使用cell的font属性,将Font对象赋值给它
        # 声明样式
        bold_italic_16_font = Font(name='宋体', size=16, italic=True, color=Color(rgb="FF0000"), bold=True)

        # 给第二行设置样式
        for cell in newSheet[2]:
            cell.font = bold_italic_16_font

        wb.save(file_path)

    except Exception as e:
        print(f"Exception : {e}")
2.3. 给第三行数据设置垂直居中和水平居中
python 复制代码
import os

from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment, Color, Border, Side


def listdir(file_path):
    paths = os.listdir(file_path)
    print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')
    return paths


if __name__ == '__main__':
    path = 'D:\pythonExcel'
    try:
        fileName = listdir(path)
        file_path = os.path.join(path, fileName[0])
        # 打开已有文件
        wb = load_workbook(file_path)
        # 创建一个新的sheet
        newSheet = wb["NewSheet"]
        # 设置新sheet为活动sheet
        wb.active = newSheet
        # 给第三行设置对齐方式:给第三行数据设置垂直居中和水平居中
        for cell in newSheet[3]:
            cell.alignment = Alignment(horizontal='center', vertical='center')
        wb.save(file_path)

    except Exception as e:
        print(f"Exception : {e}")
2.4. 给第四行设置行高为30
python 复制代码
import os

from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment, Color, Border, Side


def listdir(file_path):
    paths = os.listdir(file_path)
    print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')
    return paths


if __name__ == '__main__':
    path = 'D:\pythonExcel'
    try:
        fileName = listdir(path)
        file_path = os.path.join(path, fileName[0])
        # 打开已有文件
        wb = load_workbook(file_path)
        # 创建一个新的sheet
        newSheet = wb["NewSheet"]
        # 设置新sheet为活动sheet
        wb.active = newSheet

        # 给第四行设置行高为30
        newSheet.row_dimensions[4].height = 30
        wb.save(file_path)

    except Exception as e:
        print(f"Exception : {e}")
2.5. 给第五行设置列宽为15
python 复制代码
import os

from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment, Color, Border, Side


def listdir(file_path):
    paths = os.listdir(file_path)
    print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')
    return paths


if __name__ == '__main__':
    path = 'D:\pythonExcel'
    try:
        fileName = listdir(path)
        file_path = os.path.join(path, fileName[0])
        # 打开已有文件
        wb = load_workbook(file_path)
        # 创建一个新的sheet
        newSheet = wb["NewSheet"]
        # 设置新sheet为活动sheet
        wb.active = newSheet

        # 给第五行设置列宽为15
        for column_letter in range(1, newSheet.max_column + 1):
            if 5 == column_letter:
                # chr(64 + column_letter)用于将列号的数值转换为列字母标识符
                newSheet.column_dimensions[chr(64 + column_letter)].width = 15
    
        wb.save(file_path)

    except Exception as e:
        print(f"Exception : {e}")
2.6. 给A列设置列宽为 30
python 复制代码
import os

from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment, Color, Border, Side


def listdir(file_path):
    paths = os.listdir(file_path)
    print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')
    return paths


if __name__ == '__main__':
    path = 'D:\pythonExcel'
    try:
        fileName = listdir(path)
        file_path = os.path.join(path, fileName[0])
        # 打开已有文件
        wb = load_workbook(file_path)
        # 创建一个新的sheet
        newSheet = wb["NewSheet"]
        # 设置新sheet为活动sheet
        wb.active = newSheet

        # 给A列设置列宽为 30
        newSheet.column_dimensions['A'].width = 30
       
        wb.save(file_path)

    except Exception as e:
        print(f"Exception : {e}")
2.7. 在A1单元格应用边框样式
python 复制代码
import os

from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment, Color, Border, Side


def listdir(file_path):
    paths = os.listdir(file_path)
    print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')
    return paths


if __name__ == '__main__':
    path = 'D:\pythonExcel'
    try:
        fileName = listdir(path)
        file_path = os.path.join(path, fileName[0])
        # 打开已有文件
        wb = load_workbook(file_path)
        # 创建一个新的sheet
        newSheet = wb["NewSheet"]
        # 设置新sheet为活动sheet
        wb.active = newSheet
        # 创建一个Border对象来定义边框样式
        border = Border(
            left=Side(style='thin'),  # 左边框
            right=Side(style='thin'),  # 右边框
            top=Side(style='thin'),  # 上边框
            bottom=Side(style='thin')  # 下边框
        )
        # 在A1单元格应用边框样式
        newSheet['A1'].border = border
        wb.save(file_path)

    except Exception as e:
        print(f"Exception : {e}")
2.8. 完整demo
python 复制代码
import os

from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment, Color, Border, Side


def listdir(file_path):
    paths = os.listdir(file_path)
    print(f'返回指定目录【{file_path}】下的所有文件和目录名:{os.listdir(file_path)}')
    return paths


if __name__ == '__main__':
    path = 'D:\pythonExcel'
    try:
        fileName = listdir(path)
        file_path = os.path.join(path, fileName[0])
        # 打开已有文件
        wb = load_workbook(file_path)
        # 创建一个新的sheet
        newSheet = wb["NewSheet"]
        # 设置新sheet为活动sheet
        wb.active = newSheet
        # 输入等线 24号,加粗斜体,字体颜色红色。
        # 直接使用cell的font属性,将Font对象赋值给它
        # 声明样式
        bold_italic_24_font = Font(name='等线', size=24, italic=True, color=Color(rgb="FF0000"), bold=True)
        bold_italic_16_font = Font(name='宋体', size=16, italic=True, color=Color(rgb="FF0000"), bold=True)
        # 创建一个Border对象来定义边框样式
        border = Border(
            left=Side(style='thin'),  # 左边框
            right=Side(style='thin'),  # 右边框
            top=Side(style='thin'),  # 上边框
            bottom=Side(style='thin')  # 下边框
        )
        # 给单元格设置样式
        newSheet['A1'].font = bold_italic_24_font
        # 给第二行设置样式
        for cell in newSheet[2]:
            cell.font = bold_italic_16_font
        # 给第三行设置对齐方式:给第三行数据设置垂直居中和水平居中
        for cell in newSheet[3]:
            cell.alignment = Alignment(horizontal='center', vertical='center')
        # 给第四行设置行高为30
        newSheet.row_dimensions[4].height = 30
        # 给第五行设置列宽为15
        for column_letter in range(1, newSheet.max_column + 1):
            if 5 == column_letter:
                # chr(64 + column_letter)用于将列号的数值转换为列字母标识符
                newSheet.column_dimensions[chr(64 + column_letter)].width = 15
        # 给A列设置列宽为 30
        newSheet.column_dimensions['A'].width = 30
        # 在A1单元格应用边框样式
        newSheet['A1'].border = border
        wb.save(file_path)

    except Exception as e:
        print(f"Exception : {e}")
相关推荐
2601_962218617 分钟前
C++中decltype关键字的实现
开发语言·c++
hqyjzsb11 分钟前
法律 Prompt 干货:搭建合同审查提示词要包含哪些要素
开发语言·人工智能·python·职场和发展·数据分析·prompt·业界资讯
Andreapiki14 分钟前
风险审计校招技术栈拆解:SQL、Python、Power BI在2026届JD中的真实权重
数据库·python·sql
孙启超19 分钟前
【AI开发之Rust】第 19 课:UniFFI 导出核心能力
开发语言·后端·rust
2601_9669496534 分钟前
股票池发生变化后,如何高效更新行情数据?从全量刷新到增量同步
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
繁华的地方不一定留下你的脚印41 分钟前
C++ std::variant 与 std::visit:安全保存多种类型,写清每个处理分支
开发语言·c++
小羊没烦恼!1 小时前
在Scrum中实施敏捷建模
java·开发语言·windows·算法·c#
玖石书1 小时前
python-uv-windows环境安装方案
windows·python·uv
❀͜͡傀儡师1 小时前
20 年沉淀,CAS 8.0 重新定义企业级 SSO:适配 JDK 25 与 Spring Boot 4.1
java·开发语言·spring boot
weixin_307779131 小时前
基于睿擎工业开发平台的预训练视觉模型轻量化适配与低代码部署优化
开发语言·算法