假設一列有兩種顏色:白色和綠色。如何在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)
注:單元格樣式在欄目風格具有更高的優先級。 換句話說,如果您將列樣式設置爲白色,但單元格樣式爲綠色,則用戶將看到綠色單元格。
過去也有類似的問題。這可能但並不容易,你需要提供更多的代碼來獲得幫助。 –