Python使用openpyxl自动化实现Excel排版与读写
作者:小庄-Python办公
本文主要介绍了使用Python的openpyxl库操作Excel文件的方法,包括读取,修改文件,设置单元格的字体,对齐方式,背景填充色和边框等,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
在第一节课中,我们体验了如何用Python快速创建一个Excel文件。但在实际工作中,我们往往需要对已有的Excel文件进行读取、修改,甚至要设置漂亮的格式(加粗、标红、加边框等)。
本节课,我们将深入学习 openpyxl 库,帮你彻底搞定Excel的基础读写与排版操作!
1. 核心概念理解
在使用openpyxl时,必须掌握三个核心概念,它们的层级关系如下:
- Workbook (工作簿):代表整个Excel文件。
- Worksheet (工作表):代表Excel文件中的一个Sheet页。
- Cell (单元格):代表Sheet页中的某一个小格子(如A1, B2)。
操作Excel的基本流程:打开Workbook -> 选择Worksheet -> 操作Cell -> 保存Workbook。
2. 读取与修改已有Excel文件
假设我们有一个名为 data.xlsx 的文件,里面有一张“成绩表”。
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)
from openpyxl.styles import Font # 设置字体为微软雅黑,大小14,加粗,红色 custom_font = Font(name="微软雅黑", size=14, bold=True, color="FF0000") sheet["A1"].font = custom_font
3.2 设置对齐方式 (Alignment)
from openpyxl.styles import Alignment # 设置水平居中、垂直居中 align = Alignment(horizontal="center", vertical="center") sheet["A1"].alignment = align
3.3 设置背景填充色 (PatternFill)
from openpyxl.styles import PatternFill # 设置背景色为纯色填充,黄色 (Hex颜色代码) fill = PatternFill(fill_type="solid", start_color="FFFF00") sheet["A1"].fill = fill
3.4 设置边框 (Border)
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. 调整行高与列宽
有时候数据太长显示为 ###,我们需要用代码自动调整宽高:
# 设置第一行的行高为 30 sheet.row_dimensions[1].height = 30 # 设置A列的列宽为 20 sheet.column_dimensions["A"].width = 20
5. 小结
这节课我们掌握了 openpyxl 的核心技能,从文件的加载、数据的读写,到字体、对齐、背景、边框的全面美化。利用这些功能,你已经可以写出一个自动给日报/周报排版格式的脚本了。
但如果你有10万条数据需要筛选、统计,openpyxl的速度可能会有点慢。下一节课,我们将引入真正的数据处理大杀器 —— pandas!敬请期待。
到此这篇关于Python使用openpyxl自动化实现Excel排版与读写的文章就介绍到这了,更多相关Python openpyxl Excel排版与读写内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
