您好,登錄后才能下訂單哦!
問題
我試圖打印some_cell.font.color.rgb并得到各種結果。
對于一些人,我得到了我想要的東西(比如“ FF000000”),但對于其他人,它給了我Value must be type 'basetring'。我假設后者是因為我實際上沒有為這些單元格定義字體顏色。
我正在使用openpyxl 2.2.2
解決方案
我認為這是openpyxl中的一個錯誤,我認為你應該在這里報告。
調試以下代碼(當然使用trepan3k):
from openpyxl import Workbook wb = Workbook() ws = wb.active c = ws['A4'] # cell gets created here print(ws['A4'].font.color)
我明白了:
Color(rgb=Value must be type 'str', indexed=Value must be type 'int', auto=Value must be type 'bool', theme=1, tint=0.0, type='theme')
這來自文件中類Typed()的_repr_()openpyxl/descriptors/base.py
。未初始化值時會給出此消息。請注意,“indexed”和“auto”也未設置。
但是這些應該ws['a4']是在執行訪問代碼時設置的。
注意:消息中的細微差別:'str'而不是'basestring'可能歸因于我使用Python 3或不太可能使用openpyxl 2.2.3
如果我應該在我的示例中添加其他一些額外的代碼,那么至少https://openpyxl.readthedocs.org/en/latest/index.html應該表明這一點。
另請參見openpyxl單元格樣式未正確報告其中一個開發人員似乎在這么多單詞中說同樣的事情。
編輯:
其他一些事情可能值得關注。首先,您可以設置一個值然后讀取它,例如您可以這樣做:
c.font.color.rgb = "FF000000"
其次,如果您c.font.color.rgb在布爾值中測試,它將看起來像已設置的值。那是
if c.font.color: print("yes")
將打印“是”。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。