假设一列有两种颜色:白色和绿色。如何在openpyxl中选择具有特定颜色的单元格?
任务:使用openpyxl选择绿色单元格。
我已阅读官方文档Working with styles,但未能弄清楚如何去做。
还有很多小问题:例如,如何找出当前颜色的代码?
假设一列有两种颜色:白色和绿色。如何在openpyxl中选择具有特定颜色的单元格?
任务:使用openpyxl选择绿色单元格。
我已阅读官方文档Working with styles,但未能弄清楚如何去做。
还有很多小问题:例如,如何找出当前颜色的代码?
波纹管是设置单元的(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
包含一列或多列(列组概念)的属性(样式等) 。 min
和max
属性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)
注:单元格样式在栏目风格具有更高的优先级。 换句话说,如果您将列样式设置为白色,但单元格样式为绿色,则用户将看到绿色单元格。
过去也有类似的问题。这可能但并不容易,你需要提供更多的代码来获得帮助。 –