Python办公——openpyxl处理Excel每个sheet&每行 修改为软雅黑9号剧中+边框线

目录

专栏导读

🌸 欢迎来到Python办公自动化专栏---Python处理办公问题,解放您的双手

🏳️‍🌈 博客主页:请点击------> 一晌小贪欢的博客主页求关注

👍 该系列文章专栏:请点击------>Python办公自动化专栏求订阅

🕷 此外还有爬虫专栏:请点击------>Python爬虫基础专栏求订阅

📕 此外还有python基础专栏:请点击------>Python基础学习专栏求订阅

文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏

❤️ 欢迎各位佬关注! ❤️

背景

我们在日常办公的时候,经常会遇到大批量数据写入Excel表格中,但是有一些python的第三方库写入的效率和速度偏慢,所以我们可以采用更高效的办法对数据进行写入保存。

在保存的时候将表头修改一个背景色,以及修改居中、以及字体的样式

除表头之外的其余单元格样式也想做修改,那么您可以参考此篇文章

1、库的介绍

①:openpyxl

Openpyxl是一个强大的Python库,主要用于读取、写入和操作Excel文件(特别是.xlsx格式)。它提供了一组功能丰富的API,支持Excel
2010及更高版本的文件格式,使得在编程中处理Excel文件变得非常容易。 Openpyxl的主要特点和功能包括:
1、支持.xlsx格式:Openpyxl主要用于处理Excel 2010及更新版本的.xlsx文件。
2、读写Excel文件:用户可以使用Openpyxl读取现有的Excel文件,获取数据,修改数据,并保存到新的文件中。
3、操作单元格:Openpyxl允许用户按行、列或具体的单元格进行数据的读取和写入。
4、创建和修改工作表:用户可以创建新的工作表,复制和删除现有的工作表,以及设置工作表的属性等。
5、样式设置:Openpyxl允许用户设置单元格的字体、颜色、边框等样式。
6、图表和公式:用户可以通过Openpyxl创建图表、添加公式等。
7、支持数字和日期格式:Openpyxl能够正确处理数字和日期格式,确保在Excel中显示正确的格式。
在Openpyxl中,有三个主要的对象:Workbook、Worksheet和Cell。Workbook代表一个Excel文档,Worksheet代表表格,Cell则代表单元格。这些对象都包含了许多属性和方法,方便用户进行各种操作。
安装和导入Openpyxl也相对简单。用户可以使用pip进行安装,然后在Python程序中通过import语句导入整个库或特定的模块和函数。
总的来说,Openpyxl是一个功能强大、易于使用的Python库,可以大大提高处理Excel文件的效率。无论是自动化处理大量数据,还是创建漂亮的报告,Openpyxl都是一个强大的工具。

2、库的安装

用途 安装
openpyxl 读写Excel pip install openpyxl -i https://pypi.tuna.tsinghua.edu.cn/simple/

3、核心代码

① 定义边框样式

python 复制代码
# 定义边框样式
border_style = Border(
    top=Side(border_style="thin"),
    bottom=Side(border_style="thin"),
    left=Side(border_style="thin"),
    right=Side(border_style="thin")
)

② 表头样式(背景色+字体样式+颜色)

python 复制代码
# 定义表头背景颜色 - 红色 (192,0,0)
header_fill = PatternFill(start_color='FFC00000', end_color='FFC00000', fill_type='solid')

# 定义表头字体颜色 - 白色
header_font = Font(name='微软雅黑', size=9, color='FFFFFF')

③ 单元格样式(字体样式+居中)

python 复制代码
cell.font = Font(name='微软雅黑', size=9)
# 设置单元格内容居中对齐
cell.alignment = Alignment(horizontal='center', vertical='center')

4、完整代码

python 复制代码
# -*- coding: UTF-8 -*-
'''
@Project :2024-11-29 
@File    :修改样式.py
@IDE     :PyCharm 
@Author  :一晌小贪欢(278865463@qq.com)
@Date    :2024/11/29 下午10:20 
'''

import time
from openpyxl import load_workbook
from openpyxl.styles import Font, Alignment, PatternFill
from openpyxl.styles.borders import Border, Side

# 打开现有的Excel文件
wb = load_workbook('test_bills.xlsx')
sheetnames = wb.sheetnames

# 定义边框样式
border_style = Border(
    top=Side(border_style="thin"),
    bottom=Side(border_style="thin"),
    left=Side(border_style="thin"),
    right=Side(border_style="thin")
)

# 定义表头背景颜色 - 红色 (192,0,0)
header_fill = PatternFill(start_color='FFC00000', end_color='FFC00000', fill_type='solid')

# 定义表头字体颜色 - 白色
header_font = Font(name='微软雅黑', size=9, color='FFFFFF')

for sheet in sheetnames:
    t1 = time.time()
    ws = wb[sheet] # 获取活动的工作表
    # 遍历每一行
    for idx, row in enumerate(ws.iter_rows(), start=1):
        for cell in row:
            # 设置字体为微软雅黑,9号,默认黑色
            cell.font = Font(name='微软雅黑', size=9)

            # 设置单元格内容居中对齐
            cell.alignment = Alignment(horizontal='center', vertical='center')

            # 设置边框
            cell.border = border_style

        # 如果是第一行,则设置背景色为红色,字体颜色为白色
        if idx == 1:
            for cell in row:
                cell.fill = header_fill
                cell.font = header_font

    t2 = time.time()
    print(f"{sheet}处理完毕,耗时{t2-t1}秒")

# 保存修改后的文件
wb.save('修改后的文件.xlsx')

5、最快的方法(50万行44秒)------表头+其余单元格都修改样式

目前Python中最快的库,去修改样式,详情请参考这篇文章,点我进行跳转

总结

希望对初学者有帮助

致力于办公自动化的小小程序员一枚

希望能得到大家的【一个免费关注】!感谢

求个 🤞 关注 🤞

此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏

求个 ❤️ 喜欢 ❤️

此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏

求个 👍 收藏 👍

此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏

相关推荐
数据智能老司机18 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机19 小时前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机19 小时前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机19 小时前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i20 小时前
drf初步梳理
python·django
每日AI新事件20 小时前
python的异步函数
python
这里有鱼汤21 小时前
miniQMT下载历史行情数据太慢怎么办?一招提速10倍!
前端·python
databook1 天前
Manim实现脉冲闪烁特效
后端·python·动效
程序设计实验室1 天前
2025年了,在 Django 之外,Python Web 框架还能怎么选?
python
倔强青铜三1 天前
苦练Python第46天:文件写入与上下文管理器
人工智能·python·面试