溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python openpyxl讀取單元格字體顏色過程解析

發(fā)布時間:2020-09-04 19:36:02 來源:腳本之家 閱讀:361 作者:黑洞 欄目:開發(fā)技術

問題

我試圖打印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']是在執(zhí)行訪問代碼時設置的。

注意:消息中的細微差別:'str'而不是'basestring'可能歸因于我使用Python 3或不太可能使用openpyxl 2.2.3

如果我應該在我的示例中添加其他一些額外的代碼,那么至少https://openpyxl.readthedocs.org/en/latest/index.html應該表明這一點。

另請參見openpyxl單元格樣式未正確報告其中一個開發(fā)人員似乎在這么多單詞中說同樣的事情。

編輯:

其他一些事情可能值得關注。首先,您可以設置一個值然后讀取它,例如您可以這樣做:

c.font.color.rgb = "FF000000"

其次,如果您c.font.color.rgb在布爾值中測試,它將看起來像已設置的值。那是

if c.font.color: print("yes")

將打印“是”。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI