Il y avait une telle chose. Senior "Je veux que vous ne convertissiez que les 130 fichiers Excel du dossier et la feuille écrite dans le nom de la feuille en PDF. Merci!" Je "OK, je vais le faire bientôt!" travail···· Je "J'ai fini!" Senior "Oh, merci. Il a été sauvé!" Je "Hmm, je suis fatigué ..." Python "Eh. Tu ne sais pas que je peux convertir un fichier Excel en PDF?" J'ai dit: "Sérieusement. Je vais continuer à faire ce genre de travail, alors je vais essayer de découvrir comment améliorer l'efficacité cette fois!"
Donc, je voudrais expliquer le code pour convertir de nombreux fichiers Excel du dossier en PDF, qui sert également de mémorandum.
Pour faire fonctionner Excel, nous utilisons un module appelé win32com. Si vous n'avez jamais installé ce module, installez-le avec pip.
pip install pywin32
Tout d'abord, j'ai écrit un programme pour convertir la première feuille d'un fichier Excel en PDF.
code.py
import win32com.client
excel = win32com.client.Dispatch("Excel.Application")
file = excel.Workbooks.Open(r"C:\aa\bb.xlsx")
file.WorkSheets(1).Select()
file.ActiveSheet.ExportAsFixedFormat(0,r"C:\aa\bb")
file.Close()
La première ligne est l'importation de win32com La deuxième ligne est le paramètre qui exploite Excel. La troisième ligne est le chemin absolu du fichier Excel que vous souhaitez convertir en PDF
Ensuite, je voudrais écrire un programme qui convertit tous les Excel du dossier en PDF.
Tout d'abord, j'ai spécifié un dossier et stocké tous les noms de fichiers dans ce dossier dans la liste, y compris l'extension. Ensuite, convertissez les fichiers au format PDF un par un. La gestion des exceptions est utilisée pour fermer le fichier afin qu'il se ferme correctement même si la conversion échoue. J'ai utilisé splitext () pour séparer le nom du fichier et le nom de l'extension afin que le nom Excel puisse être un nom PDF, puis je l'ai passé à l'argument ExportAsFixedFormat ().
code.py
import win32com.client
import os
excel = win32com.client.Dispatch("Excel.Application")
path = 'C:/aa/'
files = []
for filename in os.listdir(path):
if os.path.isfile(os.path.join(path, filename)):
files.append(filename)
for i in range(0,len(files)):
try:
file = excel.Workbooks.Open(path + '/' + files[i])
file.WorkSheets("AA").Select()
name, ext = os.path.splitext(files[i])
file.ActiveSheet.ExportAsFixedFormat(0, path + '/' + name)
except Exception as e:
print(e)
finally:
file.Close()
Maintenant, vous pouvez facilement convertir n'importe quel nombre d'Excel en PDF! Python est incroyable!
Recommended Posts