2017-07-26 3 views
0

Also schreibe ich ein Python-Skript, das Schlüsselwörter in bestimmten Spalten in Excel identifiziert. Ich möchte Funktionen hinzufügen, um die Farbe von Keywords zu markieren/ändern, wenn ich sie finde.Highlight Schlüsselwort mit openpyxl

for i in self.data: 
    wb = openpyxl.load_workbook(i) 
    sheet = wb.active 
    store_keyword = self.whichColumnEntry.get() 
    keyword_column = self.whichSearchColumnEntry.get() 
    keyword = self.keywordEntry.get() 
    sheet[store_keyword + '1'] = 'Keyword' 
    for row in range(2, sheet.max_row + 1): 
     test = sheet[keyword_column + str(row)].value 
     if test.find(keyword) >= 0: 
      sheet[store_keyword + str(row)] = keyword 
      times_found += 1 
    wb.save(i) 

Das ist der Code, den ich bisher verwende. Wenn das Schlüsselwort in einer Zelle gefunden wird, fügt es das Schlüsselwort zu einer neuen Spalte am Ende der Tabelle hinzu. Kann ich das Keyword auch hervorheben?

Danke!

Antwort

0

Hervorheben wie? Ändern der Zellenfarbe?

openpyxl docs: http://openpyxl.readthedocs.io/en/default/styles.html

z.B. das folgende sollte eine gelbe Zelle mit dem Schlüsselwort darin produzieren:

from openpyxl.styles import colors 

#... some code... 

    mycell = sheet[store_keyword + str(row)] 
    mycell.value = keyword 
    mycell.fill = PatternFill("solid", fgColor=colors.YELLOW) 
+0

Ich möchte das tatsächliche Wort hervorheben. Oder ändern Sie die Farbe des Wortes. Es gibt Absätze in jeder Zelle, so dass das Markieren der gesamten Zelle nicht wirklich funktioniert. Danke für die Antwort! – Lucas

+0

Excel unterstützt jetzt die Formatierung unterhalb der Zellenebene. Ich glaube jedoch, dass dies relativ neu ist. Ich glaube nicht, dass openpyxl dies unterstützt. – Baldrickk

+0

Bälle. Trotzdem danke! – Lucas