Ich benutze oft Word, um Dokumente zu erstellen, aber Nach der Förderung von papierlosem und der Einführung von Groupware Beginnen Sie mit einer Stimme Ihres Chefs: "Lassen Sie uns Word-Dateien in PDF konvertieren und Dokumente zentral verwalten!"
Der Kampf mit unzähligen ".doc" und ".docx", von denen ich nicht weiß, wie viele beginnen ... Natürlich kann niemand in der Firma Python verwenden, also habe ich es implizit versucht.
import win32com.client
import os
#Installieren Sie die erforderlichen Module
wd = win32com.client.Dispatch('Word.Application')
#Erklärung zum "Manipulieren von Word"
documents_path = 'C:/test/'
word_list = []
#Legen Sie den Pfad des Ordners fest, in dem die Dateien gespeichert sind
#word_file_Leere Liste zum Speichern des Namens(word_list)Erstellen
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,Mit ext wird die Erweiterung in ext eingegeben und der Dateiname lautet base_Im Namen gespeichert
word_file.SaveAs2(FileName = documents_path + base_name + '.pdf', FileFormat = 17)
#Geben Sie den Dateinamen und das Format an(17 ist PDF[https://docs.microsoft.com/ja-JP/office/vba/api/word.wdsaveformat])Der Satz
except Exception as e:
print(e)
#Speichern Sie eine andere Ausnahmeverarbeitung als try in e und zeigen Sie sie gegebenenfalls an
finally:
word_file.Close()
print('complete')
Nach vielen Versuchen und Irrtümern habe ich den obigen Code erhalten. Ich denke, dass es ziemlich überflüssig ist, weil es ein Anfänger ist.
documents_path dient zum Posten dieses Mal, daher wird es als Test festgelegt. Geben Sie bei der Verwendung den Pfad des Ordners an, in dem die Word-Datei gespeichert ist.
・ Die for-Anweisung ist zweimal enthalten, und ich wollte sie ursprünglich zu einer kombinieren. In der with-Anweisung hat pywin32 nicht gut funktioniert, daher müssen in Zukunft Verbesserungsmaßnahmen ergriffen werden.
・ Redundante Teile reinigen.
Ich war ursprünglich an Python interessiert und habe daran gearbeitet, aber es war das erste Mal, dass ich tatsächlich etwas fertiggestellt habe. Für Profis mag es eine schlechte Idee sein, aber ich würde mich gerne daran gewöhnen, auch nur den kleinsten Code zu schreiben. Es gibt viele Bereiche, die durch den Einsatz von Automatisierung intern verbessert werden können. Daher werde ich die Ergebnisse meiner Bemühungen als Memorandum kontinuierlich an Qiita senden.
Wir würden uns über Verbesserungen oder Ratschläge freuen! Vielen Dank.
Recommended Posts