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}")
相关推荐
databook9 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar11 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805111 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_11 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机18 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机19 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机19 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机19 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i19 小时前
drf初步梳理
python·django
每日AI新事件19 小时前
python的异步函数
python