接上文Python开发从零开始-50.18-Office 文档处理,本文小编与大家分享 Python 处理 Office 文档的相关知识。
② 设置单元格填充样式
可以根据需要创建 PatternFill 对象,并赋值单元格对象的 fill 属性来设置单元格填充样式。
PatternFill 对象的构造方法原型如下:
PatternFill( patternType=None, fgColor=color, indexed=None, auto=None, theme=None, tint=0.0, type='rgb', bgColor=color, indexed=None, auto=None, theme=None, tint=0.0, type='rgb', fill_type=None, start_color=None, end_color=None) |
参数解释(部分):
fill_type:字符串,填充模式类型,patternType 参数别名;
start_color:Color 对象,fgColor 参数别名;
end_color:Color 对象,bgColor 别名;
patternType:字符串,填充模式类型,支持纯色、各类网格线条图案等;官方内置了十多种填充类型,常用类型包括:
'none':无填充,单元格背景完全透明;
'solid':纯色填充,是最常用的填充模式;
'lightGray' / 'darkGray':浅灰色 /深灰色底纹填充;
'mediumGray':中灰色底纹填充;
'horizontalStripe'、'diagonalCross' 等特殊纹理填充。
fgColor:Color 对象或十六进制字符串,填充前景色,纯色填充时设置该参数即可生效;
bgColor:Color 对象或十六进制字符串,填充背景色,仅在非纯色图案填充模式下生效;
注意:patternType 参数如果设置为无填充 "none" 时,fgColor 和 bgColor 参数设置将无效。
openpyxl.styles.colors.Color 对象封装了 Excel 样式中的颜色定义,通常用于字体、填充、边框等样式。openpyxl.styles 子模块中提供了别名导出。该对象支持 6 位(RGB)或 8 位(ARGB)十六进制字符串、索引色和主题色三种模式创建,最常用的是使用十六进制字符串作为参数创建对象:
from openpyxl.styles import Color# 创建颜色对象(黑色)color = Color("00000000")
openpyxl 并没有提供丰富的预定义颜色常量,所以如果在实际项目中需要多种颜色定义,建议使用在线颜色转换工具,例如:
https://colorconvert.net/zh/colors
https://coding.tools/cn/hex-to-rgb
https://www.jyshare.com/front-end/55/
注意:在线颜色工具提供的十六进制值通常带 "#" ,例如 "#00000000",在 Color 对象定义时必须去掉 "#",否则程序会报错。
完整的设置单元格填充样式的代码示例如下:
from openpyxl import Workbookfrom openpyxl.styles import Color, PatternFillwb = Workbook()ws = wb.activecell = ws["A1"]cell.value = "测试文本"# 创建颜色对象(黄色)color = Color(rgb='FFFF00')# 创建填充对象,并将其赋值单元格填充属性cell.fill = PatternFill(fill_type="solid", start_color="FFFF00", end_color=color)wb.save("excel_style2.xlsx")
代码运行后,将生成 excel_style2.xlsx 文档,文档内容如下图所示:

受文章篇幅所限,下文将继续介绍 Python 处理 Office 文件的相关知识。
夜雨聆风