2017-05-04 3 views
2

Préface: Je suis nouveau et autodidacte. C'est mon premier projet de codage. Je sais que c'est terrible. Je vais le réécrire une fois qu'il sera complet et fonctionnel. J'essaie d'écrire un script python qui va comparer 2 fichiers Excel et mettre en évidence les cellules qui sont différentes. Je peux imprimer les différences (en utilisant des pandas) et mettre en évidence une cellule (seulement en codant en dur une cellule spécifique). Je n'arrive pas à comprendre comment mettre en évidence les cellules en fonction des différences imprimées.Python Excel Highlight Différences entre les cellules

df1 = pd.read_excel(mxln) # Loads master xlsx for comparison 
df2 = pd.read_excel(sfcn) # Loads student xlsx for comparison 
print('If NaN, correct. If not NaN, incorrect') 
difference = df2[df2 != df1] # Scans for differences 
print(difference) 

lmfh = load_workbook(mxln) # Load mxln for highlight 
lsfh = load_workbook(sfcn) # Load sfcn for highlight 
lmws = lmfh.active 
lsws = lsfh.active 

redFill = PatternFill(start_color='FFEE1111', end_color='FFEE1111', fill_type='solid') 
lsws['A1'].fill = redFill # Hardcoded cell color 
lsfh.save(sfcn) 

Ceci est seulement la partie du code sur laquelle je suis bloqué. Je peux poster le reste si nécessaire.

Répondre

1

Vous pouvez utiliser le style pour ajouter une surbrillance à votre image de données dans les pandas.

df2.style.apply(highlight_differences) 

Ensuite, vous pouvez écrire une fonction qui définit les critères mettant en évidence

def highlight_differences(): 
    # check for differences here 
    return ['background-color: yellow']