問題
我試圖打印some_cell.font.color.rgb并得到各種結(jié)果。
對(duì)于一些人,我得到了我想要的東西(比如“ FF000000”),但對(duì)于其他人,它給了我Value must be type 'basetring'。我假設(shè)后者是因?yàn)槲覍?shí)際上沒有為這些單元格定義字體顏色。
我正在使用openpyxl 2.2.2
解決方案
我認(rèn)為這是openpyxl中的一個(gè)錯(cuò)誤,我認(rèn)為你應(yīng)該在這里報(bào)告。
調(diào)試以下代碼(當(dāng)然使用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
。未初始化值時(shí)會(huì)給出此消息。請(qǐng)注意,“indexed”和“auto”也未設(shè)置。
但是這些應(yīng)該ws['a4']是在執(zhí)行訪問代碼時(shí)設(shè)置的。
注意:消息中的細(xì)微差別:'str'而不是'basestring'可能歸因于我使用Python 3或不太可能使用openpyxl 2.2.3
如果我應(yīng)該在我的示例中添加其他一些額外的代碼,那么至少https://openpyxl.readthedocs.org/en/latest/index.html應(yīng)該表明這一點(diǎn)。
另請(qǐng)參見openpyxl單元格樣式未正確報(bào)告其中一個(gè)開發(fā)人員似乎在這么多單詞中說同樣的事情。
編輯:
其他一些事情可能值得關(guān)注。首先,您可以設(shè)置一個(gè)值然后讀取它,例如您可以這樣做:
c.font.color.rgb = "FF000000"
其次,如果您c.font.color.rgb在布爾值中測(cè)試,它將看起來像已設(shè)置的值。那是
if c.font.color: print("yes")
將打印“是”。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
