Einzelene Zellen in Excel mit (row=1, column=5) farblich makieren

Fragen zu Tkinter.
Antworten
DMD-OS
User
Beiträge: 165
Registriert: Freitag 28. Dezember 2018, 13:52

hallo
ich beschäftige mich grade mit Excel-Tabellen, die ich in eine Datenbank schreibe.
bei fehler habe dazu eine detaillierte Fehlerausgabe erstellt:

Code: Alles auswählen

{'Auftragsstellen': {'Leere Spalte': [[1, 0, 'NULL'], [1, 6, 'NULL']], 'Kein Doppelpunkt': [[1, 1, '030'], [1, 2, '1000'], [1, 3, 'Straße']]}}
in der ich jede Fehlerzelle per Zahlen anspechen kann.
nun möchte ich (mit pandas) diese einzelnen fehlerzellen farblich makieren und dann wieder neu abspeichern (updaten sozusagen).
das gelingt leider nicht.
ich habe im netz mal geguckt und nur das hier gefunden:
(https://stackoverflow.com/questions/435 ... with-color)

Code: Alles auswählen

data =  pd.DataFrame(np.random.randn(6, 6), columns=list('ABCDEF'))

def highlight_cells(x):
    df = x.copy()
    #set default color
    #df.loc[:,:] = 'background-color: papayawhip' 
    df.loc[:,:] = '' 
    #set particular cell colors
    df.iloc[0,0] = 'background-color: red'
    df.iloc[1,1] = 'background-color: orange'
    df.iloc[2,2] = 'background-color: yellow'
    df.iloc[3,3] = 'background-color: lightgreen'
    df.iloc[4,4] = 'background-color: cyan'
    df.iloc[5,5] = 'background-color: violet'
    return df 

t = data.style.apply(highlight_cells, axis=None)
t
da ich eine xlsx-datei erzeugen möchte und das anscheinend nur mit pandas geht, hakt es.
kann man bestimmte excel-zellen per zeilen- und spaltennummer frablich makieren?
DMD-OS
User
Beiträge: 165
Registriert: Freitag 28. Dezember 2018, 13:52

Sorry, aber ich habs:

Code: Alles auswählen

import pandas as pd
import numpy as np

data = pd.DataFrame(np.random.randn(6, 6), columns=list('ABCDEF'))


def highlight_cells(x):
    df = x.copy()
    #set default color
    #df.loc[:, :] = 'background-color: papayawhip'
    df.loc[:, :] = ''
    #set particular cell colors
    df.iloc[0, 3] = 'background-color: red'
    return df


data.style.apply(highlight_cells, axis=None).to_excel('Test.xlsx', engine='openpyxl', index=False)
:)
Antworten