Heim  >  Fragen und Antworten  >  Hauptteil

xlwt - Wie füge ich bestimmten Wörtern in Python Farbe hinzu und schreibe sie in ein Excel-Dokument?

......

Erstellen Sie die Textfarbfunktion set_color

def set_color(color,bold=False):

style = xlwt.XFStyle() 
font = xlwt.Font() 
font.colour_index = color
style.font = font
return style

Suchen Sie das angegebene Wort und fügen Sie Farbe hinzu

for i in range(nrow1): #Lies die Anzahl der Zeilen und Schleife

pn=[]
pl=[]
a=table1.row_values(i)[0] 
she1.write(i,0,a)      #写入Excel

datafen= jiebtext(a)   #利用jieba函数,进行分词

for nword in datafen:
    if nword in nwords():  #判断已分好的分词是否符合指定某个词语
        pn.append(nword)
        
for l in range(len(pn)):    #读取符合指定词语的长度,并循环
    c= datafen.index(pn[l])  #找出符合指定词语的索引号
    datafen[c]=pn[l],set_style(5,True)    #将已经设置好颜色的词语并重新赋值
    data=a.replace(pn[l],**str(datafen[c]**))    #转化字符串,并把无颜色的词语替换为有颜色的词语
    print data  #输入结果

......

    she1.write(i,l+1,data)

Ergebnis:
Er ist ein guter Mensch, wir alle mögen ihn und er liebt es, anderen zu helfen, aber das Leben(u'u5c0fu6c14', <xlwt.Style.XFStyle-Objekt bei 0x000000000334BCF8>) kämpft jeden Tag.
Er ist ein guter Mensch und wir alle mögen ihn. Außerdem liebt er es, anderen zu helfen, aber er führt jeden Tag ein geiziges Leben(u'u6253u67b6', <xlwt.Style.XFStyle object at 0x000000000334BF60>) .

Ich habe jetzt ein Problem im Code gefunden (in data=a.replace(str(pn[l]),str(datafen[c]))). Wenn der Typ str nicht hinzugefügt wird, wird ein Typfehler angezeigt . Das Problem besteht darin, dass nach dem Schreiben in Excel die fett gedruckten Zeichen in den obigen Ergebnissen in der Tabelle erscheinen. Wie kann ich den Wörtern Farbe hinzufügen und sie in das Excel-Dokument schreiben?

过去多啦不再A梦过去多啦不再A梦2711 Tage vor728

Antworte allen(2)Ich werde antworten

  • 淡淡烟草味

    淡淡烟草味2017-05-18 10:46:56

    感觉为什么

    a.replace(str(pn[l]),str(datafen[c]))

    这里pn[l]这里要加上str呢,它自己不是str类型吗?

    Antwort
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-18 10:46:56

    中间插个语句print一下data的type是啥,问题出在这里吧,建议使用xlsxwriter

    Antwort
    0
  • StornierenAntwort