[Améliorez l'efficacité du travail avec Python] Demande: créez tous les PDF Excel dans ce dossier.

introduction

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!"

pic.jpg

Donc, je voudrais expliquer le code pour convertir de nombreux fichiers Excel du dossier en PDF, qui sert également de mémorandum.

Convertissons un fichier Excel en PDF

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

Convertir tout Excel d'un dossier 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()

à la fin

Maintenant, vous pouvez facilement convertir n'importe quel nombre d'Excel en PDF! Python est incroyable!

Recommended Posts

[Améliorez l'efficacité du travail avec Python] Demande: créez tous les PDF Excel dans ce dossier.
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
Dessinez Nozomi Sasaki dans Excel avec python
Comment utiliser BigQuery en Python
Pour faire fonctionner la station d'horodatage en Python
Je veux améliorer l'efficacité avec Python même dans un système expérimental (3) Je veux faire quelque chose comme Excel avec Pandas
[Python] Récupérez les fichiers dans le dossier avec Python
Convertissez des PDF en images en masse avec Python
[Python] Automatisation implémentée pour la copie de fichiers Excel
Travaillez dans un environnement virtuel avec Python virtualenv.
Faire fonctionner Python avec jhbuild sous OSX
Envoyer un e-mail avec Excel en pièce jointe en Python
Excel avec Python
Expliquez en détail comment créer un son avec python
Créez un Slackbot simple avec un bouton interactif en python
Je veux travailler avec un robot en python.
Trouvez la date de cette semaine dans n'importe quel format avec python
[Efficacité du travail] Comment changer les noms de fichiers par lots avec Python
Obtenez de manière récursive la liste Excel dans un dossier spécifique avec python et écrivez-la dans Excel.
Je souhaite améliorer l'efficacité avec Python même dans les systèmes expérimentaux (2) RS232C et pySerial
Je souhaite améliorer l'efficacité avec Python même dans un système expérimental (1) Installer Anaconda avec Chocolatey
Requête HTTP en Python
Gérez Excel avec python
Programmation Python avec Excel
À propos de __all__ en python
Utiliser Excel avec Python (1)
Utiliser Excel avec Python (2)
Assurez-vous que tous les éléments de la liste sont les mêmes en Python
Traitez d'énormes fichiers Excel avec Python pour améliorer la productivité