2016-11-07 170 views

回答

0

波纹管是设置单元的(backgroud)颜色的一种可能性。

在这个例子中,我们使用openpyxl.styles.fills.PatternFill类。 它使用一个图案(在这里,它是“纯色”图案), 以及前景色(绿色)和背景色(不可见 具有纯色图案,但在另一个类似'gray125 “)。

您还可以在该openpyxl.styles.fills.GradientFill类 产生渐变填充......

import openpyxl.styles 

wb = load_workbook(xls_path) 
ws = wb.active 

cell = ws["A1"] 
cell.fill = openpyxl.styles.PatternFill('solid', openpyxl.styles.colors.GREEN) 

因此,要填充图案的颜色,你可以阅读fill.fgColor (或fill.bgColor背景)属性。 你得到一个openpyxl.style.Color类的实例。

调用rgb属性(它是一个描述符)以获取RGB颜色作为字符串。 注意:此值有4个分量:Alpha颜色(透明度)和经典的RGB​​颜色。

color = cell.fill.fgColor 
assert isinstance(color, openpyxl.styles.Color) 
assert color.rgb == "0000FF00" # Green 

但是,这一切都不会帮助你。因为栏也有样式

工作表包含一个column_dimensions的集合。 每个column_dimensions包含一列或多列(列组概念)的属性(样式等) 。 minmax属性column_dimensions给出 列索引(组的开始和结束索引,从1开始)。

cd = ws.column_dimensions["A"] 
assert cd.min == 1 and cd.max == 1 

就像一个细胞,你可以设置填充模式的列:

cd.fill = openpyxl.styles.PatternFill('solid', openpyxl.styles.colors.GREEN) 

注:单元格样式在栏目风格具有更高的优先级。 换句话说,如果您将列样式设置为白色,但单元格样式为绿色,则用户将看到绿色单元格。

相关问题