Rumah  >  Soal Jawab  >  teks badan

xlwt - Bagaimana untuk menambah warna pada perkataan tertentu dalam python dan menulisnya ke dokumen Excel?

......

Buat set_warna fungsi warna teks

def set_color(color,bold=False):

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

Cari perkataan yang dinyatakan dan tambahkan warna

untuk i dalam julat(nrow1): #Baca bilangan baris dan gelung

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)

Hasil:
Dia seorang yang baik, kita semua menyukainya, dan dia suka membantu orang lain, tetapi kehidupan(u'u5c0fu6c14', <xlwt.Style.XFStyle objek pada 0x000000000334BCF8>).
Dia seorang yang baik, dan kita semua menyukainya Selain itu, dia suka membantu orang lain, tetapi dia menjalani kehidupan yang kedekut setiap hari(u'u6253u67b6', <xlwt.Style.XFStyle object at 0x000000000334BF60>) .

Saya kini telah menemui masalah dalam kod (dalam data=a.replace(str(pn[l]), str(datafen[c]))) Jika jenis str tidak ditambahkan, ralat jenis akan digesa . Masalahnya ialah selepas menulis ke Excel, aksara tebal dalam keputusan di atas akan muncul dalam jadual Bagaimana saya boleh menambah warna pada perkataan dan menulisnya ke dalam dokumen Excel?

过去多啦不再A梦过去多啦不再A梦2711 hari yang lalu725

membalas semua(2)saya akan balas

  • 淡淡烟草味

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

    Kenapa awak rasa

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

    Di sini pn[l] perlu menambah str

    balas
    0
  • 我想大声告诉你

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

    Masukkan kenyataan di tengah untuk mencetak apakah jenis data Ini mungkin masalahnya

    balas
    0
  • Batalbalas