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

這篇文章主要介紹了Python openpyxl讀取單元格字體顏色過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

問題

我試圖打印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")

將打印“是”。

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章