16 votes

Utiliser openpyxl pour éditer un fichier Excel2007 (.xlsx) sans modifier ses propres styles ?

J'ai un fichier .xlsx à modifier, j'ai trouvé openpyxl pouvait manipuler des fichiers Excel 2007. Je souhaite uniquement modifier la valeur de certaines cellules et laisser les autres paramètres inchangés.

Mais après être passé par le Documentation Je ne trouve pas d'exemples pour modifier un fichier existant. Il n'a été démontré que la lecture d'un fichier .xlsx et l'écriture dans un nouveau fichier.

J'ai essayé la méthode ci-dessous pour modifier un fichier existant, mais après l'avoir enregistré, les styles du fichier ont été supprimés (polices, couleurs, etc.) :

from openpyxl.reader.excel import load_workbook
wb=load_workbook(r'd:\foo1.xlsx')
ws=wb.get_sheet_by_name('Bar')
ws.cell('A1').value= 'new_value'
# save the workbook to a new file to finish the editing
# but the style settings has been removed (such like font, color) in the new file
wb.save(r'd:\foo2.xlsx')

18voto

Sean Points 3950

Maintenant, openpyxl ne peut pas gérer les styles assez bien, alors j'ai essayé d'utiliser pywin32 COM et j'ai trouvé la solution. Voici un bon python-excel-mini-cookbook pour utiliser pywin32 COM pour Excel

1voto

Adam Points 2669

Les styles ne sont pas encore complètement supportés dans openpyxl. Assurez-vous que vous utilisez le nouvelle version (1.5.3 à ce jour), car il a récemment amélioré ses capacités de style.

Le formatage du xlwt est plus complet pour les fichiers .xls, mais il ne prend pas encore en charge le xlsx.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X