Mein Python-Skript soll überprüfen, ob eine bestimmte Zeichenfolge in einer Zelle enthalten ist. Wenn diese Bedingung erfüllt ist, muss das Skript die Hintergrundfarbe einer Zelle in einer anderen Datei ändern. Dieser Vorgang wird mehrmals in einer for-Schleife wiederholtOpenpyxl - Hintergrundfarbe ist nicht in Datei gespeichert
from openpyxl.styles import PatternFill
column_color = sheet_database.cell(row = nextitem , column = 18).value
cell_paint = sheet_blatt.cell(row = 7 + multiplicator * 10 , column = selected_column + 1).fill
if column_color == 'AAAAAA':
cell_paint = PatternFill(fgColor='C00000', bgColor='C00000', fill_type='solid')
elif column_color == 'BBBBBB':
cell_paint = PatternFill(fgColor='FF0000', bgColor='FF0000', fill_type='solid')
Aus irgendeinem Grunde wird die Farbe nicht in die Datei am Ende gespeichert. Der Rest des Skripts ändert nur die Werte von Zellen, sodass die Farbe nicht von einem anderen Teil des Skripts überschrieben werden kann. Der Debugger zeigt auch, dass die if-Klausel eingegeben und ausgeführt wird.
wb_blatt.save('XXXX_' + str(number) + '.xlsx')
wird verwendet, um das Endergebnis zu speichern.
Ich denke, youre soll verwenden 'start_color' und' end_color' wenn Farbe Hex-Codes verwenden. siehe hier - http://openpyxl.readthedocs.io/en/default/api/openpyxl.styles.fills.html?highlight=fgColor – droravr
Hilft mir nicht. Es gibt keine Änderungen in den Dateien. – Venturion
Sie können dazu auch bedingte Formatierungsregeln schreiben. –