《Python办公Excel处理》第二节:精通openpyxl,让Excel排版与读写自动化

目录

    • 《Python办公Excel处理》第二节:精通openpyxl,让Excel排版与读写自动化
    • [1. 核心概念理解](#1. 核心概念理解)
    • [2. 读取与修改已有Excel文件](#2. 读取与修改已有Excel文件)
    • [3. 单元格格式大改造](#3. 单元格格式大改造)
      • [3.1 设置字体 (Font)](#3.1 设置字体 (Font))
      • [3.2 设置对齐方式 (Alignment)](#3.2 设置对齐方式 (Alignment))
      • [3.3 设置背景填充色 (PatternFill)](#3.3 设置背景填充色 (PatternFill))
      • [3.4 设置边框 (Border)](#3.4 设置边框 (Border))
    • [4. 调整行高与列宽](#4. 调整行高与列宽)
    • [5. 本节小结](#5. 本节小结)

专栏导读

🌸 欢迎来到Python办公自动化专栏---Python处理办公问题,解放您的双手
🏳️‍🌈 个人博客主页:请点击------> 个人的博客主页 求收藏
🏳️‍🌈 Github主页:请点击------> Github主页 求Star⭐
🏳️‍🌈 知乎主页:请点击------> 知乎主页 求关注
🏳️‍🌈 CSDN博客主页:请点击------> CSDN的博客主页 求关注
👍 该系列文章专栏:请点击------>Python办公自动化专栏 求订阅
🕷 此外还有爬虫专栏:请点击------>Python爬虫基础专栏 求订阅
📕 此外还有python基础专栏:请点击------>Python基础学习专栏 求订阅
文章作者技术和水平有限,如果文中出现错误,希望大家能指正🙏
❤️ 欢迎各位佬关注! ❤️

《Python办公Excel处理》第二节:精通openpyxl,让Excel排版与读写自动化

在第一节课中,我们体验了如何用Python快速创建一个Excel文件。但在实际工作中,我们往往需要对已有的Excel文件进行读取、修改,甚至要设置漂亮的格式(加粗、标红、加边框等)。

本节课,我们将深入学习 openpyxl 库,帮你彻底搞定Excel的基础读写与排版操作!

1. 核心概念理解

在使用openpyxl时,必须掌握三个核心概念,它们的层级关系如下:

  1. Workbook (工作簿):代表整个Excel文件。
  2. Worksheet (工作表):代表Excel文件中的一个Sheet页。
  3. Cell (单元格):代表Sheet页中的某一个小格子(如A1, B2)。

操作Excel的基本流程:打开Workbook -> 选择Worksheet -> 操作Cell -> 保存Workbook。

2. 读取与修改已有Excel文件

假设我们有一个名为 data.xlsx 的文件,里面有一张"成绩表"。

python 复制代码
import openpyxl

# 1. 加载已存在的Excel文件
wb = openpyxl.load_workbook("data.xlsx")

# 2. 获取工作表
# 获取所有sheet的名字: print(wb.sheetnames)
sheet = wb["成绩表"]

# 3. 读取单元格的值
cell_val = sheet["B2"].value
print(f"B2单元格的值是: {cell_val}")

# 4. 修改单元格的值
sheet["C2"] = 98

# 5. 遍历多行数据
for row in sheet.iter_rows(min_row=2, max_row=5, min_col=1, max_col=3, values_only=True):
    print(row) # 输出每一行的数据元组

# 6. 保存修改(注意:如果在打开状态下保存会报错,请先关闭Excel软件)
wb.save("data_modified.xlsx")

3. 单元格格式大改造

给领导看的报表,格式必须清晰美观。openpyxl提供了 styles 模块来处理格式。

3.1 设置字体 (Font)

python 复制代码
from openpyxl.styles import Font

# 设置字体为微软雅黑,大小14,加粗,红色
custom_font = Font(name="微软雅黑", size=14, bold=True, color="FF0000")
sheet["A1"].font = custom_font

3.2 设置对齐方式 (Alignment)

python 复制代码
from openpyxl.styles import Alignment

# 设置水平居中、垂直居中
align = Alignment(horizontal="center", vertical="center")
sheet["A1"].alignment = align

3.3 设置背景填充色 (PatternFill)

python 复制代码
from openpyxl.styles import PatternFill

# 设置背景色为纯色填充,黄色 (Hex颜色代码)
fill = PatternFill(fill_type="solid", start_color="FFFF00")
sheet["A1"].fill = fill

3.4 设置边框 (Border)

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

# 定义细边框线条
thin_line = Side(border_style="thin", color="000000")

# 设置上下左右四个边框
border = Border(left=thin_line, right=thin_line, top=thin_line, bottom=thin_line)
sheet["A1"].border = border

4. 调整行高与列宽

有时候数据太长显示为 ###,我们需要用代码自动调整宽高:

python 复制代码
# 设置第一行的行高为 30
sheet.row_dimensions[1].height = 30

# 设置A列的列宽为 20
sheet.column_dimensions["A"].width = 20

5. 本节小结

这节课我们掌握了 openpyxl 的核心技能,从文件的加载、数据的读写,到字体、对齐、背景、边框的全面美化。利用这些功能,你已经可以写出一个自动给日报/周报排版格式的脚本了。

但如果你有10万条数据需要筛选、统计,openpyxl的速度可能会有点慢。下一节课,我们将引入真正的数据处理大杀器 ------ pandas!敬请期待。

结尾

希望对初学者有帮助;致力于办公自动化的小小程序员一枚
希望能得到大家的【❤️一个免费关注❤️】感谢!
求个 🤞 关注 🤞 +❤️ 喜欢 ❤️ +👍 收藏 👍
此外还有办公自动化专栏,欢迎大家订阅:Python办公自动化专栏
此外还有爬虫专栏,欢迎大家订阅:Python爬虫基础专栏
此外还有Python基础专栏,欢迎大家订阅:Python基础学习专栏
相关推荐
IT_Octopus4 小时前
【零基础入门 LLM 开发 · Day 13】:LangChain 的对话记忆——Message 对象版
人工智能·python·langchain
2603_965148114 小时前
社区与学习资源:从入门到精通的API选品学习路径
数据库·人工智能·python·学习·数据挖掘
CCblandy5 小时前
令牌桶在 0.9 倍负载超发 19%、固定窗口边界放行 20 个:四种限流算法同构实测
后端·python·算法·性能优化·架构
建筑工程企业管理系统5 小时前
工程进度统计管理系统自动化汇总数据,解决施工企业手工对账误差难题
大数据·人工智能·自动化
Cc.Y6 小时前
Java零基础入门:深入Java核心:文件IO与序列化全解
java·开发语言·python
拿本唠嗑AI研究6 小时前
本体工程实战指南:从建模到可维护的完整落地路径
java·人工智能·python·jena·ontology
Sadie_d6 小时前
Excel管理研发项目有哪些问题?什么情况要升级项目管理系统?
excel·项目管理·研发管理
Smoothcloud润云6 小时前
PyTorch推理服务模型热切换与失败回滚实战:降低版本更新中断
服务器·人工智能·pytorch·python·深度学习·gpu
jsjzsl27 小时前
递归自改进系统(RSI)的本质是自发对称破缺:智能爆炸有界—— AI研发切记盲目投入
人工智能·python·算法
天远数科7 小时前
零信任架构实战:基于天远贷前风险报告构建自动化消金信贷风控与多头共债排查网关
运维·人工智能·架构·自动化