J'utilise souvent Word pour créer des documents, mais Après avoir fait la promotion de la dématérialisation et l'introduction du groupware Commencez par une voix de votre patron disant: "Convertissons les fichiers Word en PDF et gérons les documents de manière centralisée !!"
La bataille avec d'innombrables ".doc" et ".docx" dont je ne sais pas combien commence ... Bien sûr, personne dans l'entreprise ne peut utiliser python, alors je l'ai essayé implicitement.
import win32com.client
import os
#Installez les modules requis
wd = win32com.client.Dispatch('Word.Application')
#Déclaration de "manipuler Word"
documents_path = 'C:/test/'
word_list = []
#Définissez le chemin du dossier dans lequel les fichiers sont stockés
#word_file_Liste vide pour stocker le nom(word_list)Créer
for word_file_name in os.listdir(documents_path):
if os.path.isfile(os.path.join(documents_path, word_file_name)):
word_list.append(word_file_name)
for i in range(0,len(word_list)):
try:
word_file = wd.Documents.Open(documents_path + '/' + word_list[i])
base_name, ext = os.path.splitext(word_list[i])
#base_name,Par ext, l'extension est entrée dans ext et le nom du fichier est base_Stocké dans le nom
word_file.SaveAs2(FileName = documents_path + base_name + '.pdf', FileFormat = 17)
#Spécifiez le nom du fichier, le format(17 est PDF[https://docs.microsoft.com/ja-JP/office/vba/api/word.wdsaveformat])L'ensemble
except Exception as e:
print(e)
#Stocker le traitement des exceptions autre que Try in e et afficher le cas échéant
finally:
word_file.Close()
print('complete')
Après de nombreux essais et erreurs, j'ai obtenu le code ci-dessus. Je pense que c'est assez redondant car c'est un débutant.
documents_path est pour la publication cette fois, il est donc défini comme test, Lors de son utilisation, spécifiez le chemin du dossier dans lequel le fichier Word est stocké.
・ L'instruction for est incluse deux fois, et je voulais à l'origine la combiner en une seule. Dans l'instruction with, pywin32 ne fonctionnait pas bien, il est donc nécessaire de prendre des mesures d'amélioration à l'avenir.
-Essayez avec des modules autres que pywin32.
・ Nettoyez les pièces redondantes.
Au départ, j'étais intéressé par python, et j'y ai travaillé, mais c'était la première fois que je terminais quelque chose. C'est peut-être une mauvaise idée pour les professionnels, mais j'aimerais m'habituer à écrire même le plus petit code. Il existe de nombreux domaines qui peuvent être améliorés en interne en utilisant l'automatisation, je publierai donc régulièrement les résultats de mes efforts sur Qiita sous forme de mémorandum.
Nous apprécierions toute amélioration ou conseil! Je vous remercie.
Recommended Posts