python openpyxl中单元格颜色填充PatternFill(patternType=‘ ’)效果实测

单元格填充用.fill方法,具体命令是:

PatternFill(patternType=patternType,fgColor=Color(), bgColor=Color())

例如:

sheet.cell(4,5).fill = PatternFill(patternType='solid',start_color=Color(index=5))
# fgColor或start_color 前景色,或起始颜色
# bgColor或end_color   背景色,或结束颜色
# 参数可选项patternType='solid'  纯色填充

其中的patternType 参数可选项是:
patternType = {'darkDown', 'darkUp', 'lightDown', 'darkGrid', 'lightVertical', 
               'solid', 'gray0625', 'darkHorizontal', 'lightGrid', 'lightTrellis', 
               'mediumGray', 'gray125', 'darkGray', 'lightGray', 'lightUp', 
               'lightHorizontal', 'darkTrellis', 'darkVertical'} 

一大坨也不知道到底是啥,另外,既然是给单元格上背景色,怎么参数里又有fgColor前景色,bgColor背景色的设置?这又指的是啥?于是干脆自己试一下

from openpyxl import Workbook
from openpyxl.styles import *


save_file_path="xxxxxxxxxx.xlsx"
wb = Workbook()
ws = wb.active
pattern_Type =['darkDown', 'darkUp', 'lightDown', 'darkGrid', 'lightVertical',
               'solid', 'gray0625', 'darkHorizontal', 'lightGrid', 'lightTrellis',
               'mediumGray', 'gray125', 'darkGray', 'lightGray', 'lightUp',
               'lightHorizontal', 'darkTrellis', 'darkVertical']
#设置列宽和行高
ws.column_dimensions['a'].width = 15
ws.column_dimensions['b'].width = 25
ws.column_dimensions['c'].width = 25
ws.column_dimensions['d'].width = 25
for i in range(1,20):
    ws.row_dimensions[i].height=25
#列标题
ws.cell(1,2).value="fgColor或start_color"
ws.cell(1,3).value="bgColor或end_color"
ws.cell(1,4).value="fgColor,bgColor"
#填充单元格颜色
for col in range(1,5):
    for row in range(1, 19):
        if col==1:
            ws.cell(row+1,col).value=pattern_Type[row-1]
        elif col==2:
            ws.cell(row+1,col).fill=PatternFill(patternType=pattern_Type[row-1],start_color=Color(index=2))
        elif col==3:
            ws.cell(row+1,col).fill=PatternFill(patternType=pattern_Type[row-1], end_color=Color(index=3))
        else:
            ws.cell(row+1,col).fill=PatternFill(patternType=pattern_Type[row-1],start_color=Color(index=2), end_color=Color(index=3))

wb.save(save_file_path) 

在不同的patternType参数下,分别用只加fgColor参数,只加bgColor参数,两个都加测试

PatternFill(patternType,fgColor,bgColor)

最后效果是这样:测试用的fgColor=Color(index=2),也就是红色,bgColor=Color(index=3)也就是绿色

 可以看出,patternType是指单元格填充底纹纹路样式,fgColor前景色就是指花纹纹路的颜色是所设定值,bgColor背景色是指花纹纹路为默认黑色,单元格背景颜色为所设定值,这样也就理解了,在fgColor+bgColor双参数下,指对花纹(前景)设一个颜色,对单元格背景设另一个颜色。

可以看到特殊的是'solid'样式,也就是纯色填充样式,fgColor+bgColor时,由于fgColor是完全纯色,也就是一整块纹路,把bgColor给完全覆盖了,所以效果跟只有fgColor一样,即只看到前景(花纹)红色,看不到背景(单元格)绿色。

### 回答1: Pythonpatternfill是一个基于模式填充的功能,可以用来填充图形或图像。它可以在绘制图像的过程使用,用不同的模式填充不同的区域,以达到特殊的视觉效果。这个功能可以应用在图像处理、数据可视化等领域。 ### 回答2: Python的`patternfill`是一个用于填充图形图案的函数。这个函数可以帮助我们使用指定的图案来填充一个图形,如矩形、圆形等。 `patternfill`函数使用`matplotlib`库实现,它提供了丰富的图案供我们选择,比如斜线、点线、波浪线等。我们可以根据需要选择合适的图案,并设置参数来进行填充。 首先,我们需要导入`patternfill`函数所在的模块,例如:`from matplotlib.patches import patternfill`。 然后,我们可以创建一个`matplotlib`图形对象,如矩形或圆形,并利用`patternfill`函数对其进行填充。比如,我们可以创建一个矩形对象,设置它的填充样式为斜线,并将其绘制在图形。 示例代码如下: ```python import matplotlib.pyplot as plt from matplotlib.patches import Rectangle from matplotlib.patches import patternfill # 创建一个矩形对象 rect = Rectangle((0.1, 0.1), 0.5, 0.5, edgecolor='black') # 设置填充样式为斜线 pattern = patternfill(pattern='/', facecolor='gray', alpha=1) # 将填充样式应用于矩形对象 rect.set_facecolor(pattern) # 创建一个图形对象并添加矩形 fig, ax = plt.subplots() ax.add_patch(rect) # 显示图形 plt.show() ``` 运行以上代码,我们将会看到一个具有斜线填充样式的矩形图形。 总之,`patternfill`函数是一个用于填充图形图案的函数,它可以用来创建各种各样有趣的图案,并应用于我们的图形。 ### 回答3: Pythonpatternfill()是一个用于在图形化界面填充形状的函数。这个函数可以在指定的形状使用不同的图案进行填充。 在使用patternfill()函数之前,我们需要先导入必要的模块。使用以下代码导入所需的模块: from reportlab.lib import colors from reportlab.graphics.shapes import Rect from reportlab.graphics import renderPDF from reportlab.pdfgen import canvas 使用patternfill()函数需要注意以下几个参数:形状、颜色、起始点和步长。其,形状参数指定要填充的形状,颜色参数指定要使用的颜色,起始点参数指定填充的位置,步长参数指定图案的密度。 以下是一个例子,使用patternfill()函数在一个矩形填充图案: # 创建一个空白pdf文档 c = canvas.Canvas("pattern.pdf") # 创建一个矩形形状 rect = Rect(100, 100, 200, 200) # 设置填充颜色为红色 rect.fillColor = colors.red # 使用图案填充 rect.fill = colors.Pattern(fill="cross", color1=colors.white, color2=colors.black) # 将形状添加到pdf文档 c._drawFigure(rect) # 保存pdf文档 c.save() 这个例子的形状是一个矩形,填充颜色为红色,使用的图案是斜线交叉(cross),图案的颜色为白色和黑色交替。 通过使用patternfill()函数,我们可以在图形化界面实现丰富的填充效果,为图像添加更多的视觉效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值