单元格填充用.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一样,即只看到前景(花纹)红色,看不到背景(单元格)绿色。
|