Da war so etwas. Senior "Ich möchte, dass Sie nur die 130 Excel-Dateien im Ordner und das im Blattnamen geschriebene Blatt in PDF konvertieren. Vielen Dank!" Ich "OK, ich werde es bald tun!" Arbeit···· Ich "Ich bin fertig!" Senior "Oh, danke. Es wurde gerettet!" Ich "Hmm, ich bin müde ..." Python "Eh. Weißt du nicht, dass ich eine Excel-Datei in PDF konvertieren kann?" Ich sagte: "Im Ernst. Ich werde diese Art von Arbeit fortsetzen, also werde ich versuchen herauszufinden, wie ich diesmal die Effizienz verbessern kann!"
Daher möchte ich den Code zum Konvertieren vieler Excel-Dateien im Ordner in PDF erläutern, der auch als Memorandum dient.
Um Excel zu betreiben, verwenden wir ein Modul namens win32com. Wenn Sie dieses Modul noch nie installiert haben, installieren Sie es mit pip.
pip install pywin32
Zunächst schrieb ich ein Programm, um das erste Blatt einer Excel-Datei in PDF zu konvertieren.
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()
Die erste Zeile ist der Import von win32com Die zweite Zeile ist die Einstellung, mit der Excel ausgeführt wird. Die dritte Zeile ist der absolute Pfad der Excel-Datei, die Sie in PDF konvertieren möchten
Als nächstes möchte ich ein Programm schreiben, das alle Excel-Dateien im Ordner in PDF konvertiert.
Zuerst habe ich einen Ordner angegeben und alle Dateinamen in diesem Ordner in der Liste einschließlich der Erweiterung gespeichert. Konvertieren Sie dann die Dateien nacheinander in PDF. Die Ausnahmebehandlung wird verwendet, um die Datei so zu schließen, dass sie auch dann ordnungsgemäß geschlossen wird, wenn die Konvertierung nicht erfolgreich ist. Ich habe splitext () verwendet, um den Dateinamen und den Erweiterungsnamen so zu trennen, dass der Excel-Name ein PDF-Name sein kann, und ihn dann an das Argument ExportAsFixedFormat () übergeben.
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()
Jetzt können Sie ganz einfach eine beliebige Anzahl von Excels in PDF konvertieren! Python ist unglaublich!
Recommended Posts