2017-09-28 14 views
0

Je suis en train d'écrire un script, qui devrait supprimer les enregistrements de fichiers Excel existants en manipulant les données en mémoire, puis en les sauvegardant. Ce que je fais est de créer différents ensembles de valeurs (de skus) qui devraient être supprimés à partir de différents fichiers Excel. La plupart du script est déjà en fonction, le "seul" problème est la fonction principale de celui-ci: la suppression des enregistrements de fichiers Excel existants.Supprimer les lignes d'un fichier Excel existant

J'ai essayé d'utiliser openpyxl, mais il n'a pas de fonction delete_row et la fonction garbage_collect() a été dépréciée (cela aurait été ma pire décision).

Ce que je ne voudrais pas faire est d'ouvrir le fichier avec XLRD et l'écrire avec XLWT. Je ne peux pas non plus utiliser xlwings, car la machine qui exécute le script tourne sur Linux (win32 COM ne fonctionnerait pas pour la même raison). Et je ne voudrais pas utiliser Pandas (j'ai essayé d'utiliser ce module auparavant, mais c'était trop complexe pour moi). Je sais que ce sont des restrictions assez dures, mais j'espère toujours qu'il y a un moyen pour moi de résoudre ce problème.

Voici quelques examle de code:

for index, row in enumerate(ws.iter_rows('A{}:A{}'.format(ws.min_row,ws.max_row))): # I thought that I could use the row index to then delete it with it 
     for cell in row: 
      if cell.value <> header_xlsx: 
       if '"' + cell.value + '"' in set: 
        cell.value = '' # This is where I'd like to delete the row 
    ws.garbage_collect() # Optional 

S'il vous plaît noter que je suis conscient qu'il ya beaucoup de questions semblables partout sur l'internet, mais jusqu'à présent (et je l'ai regardé beaucoup) Je n'ai pas trouvé toute solution "ok".

Merci beaucoup d'avance!

Répondre