簡體   English   中英

將多個excel文件轉換成python中的PDF文件

[英]Convert multiple excel files into PDF files in python

win32com package 在將單個 excel 文件轉換為 pdf 時可以正常工作。 但是當我在循環中運行它來轉換多個 excel 文件時,它會失敗並給出錯誤消息。 (-2147352567, 'Exception occurred.', (0, None, None, None, 0, -2146777998), None)

對於單個文件:-

from win32com import client

input_file =r"...\input.xlsx"
output_file = r"...\ouput.pdf"
excel  = client.DispatchEx("Excel.Application")
excel.Interactive = False
excel.Visible = False
Workbook = excel.Workbooks.Open(input_file,None, True)
try:
    Workbook.ActiveSheet.ExportAsFixedFormat(0, output_file)
    print("PDF Created successfully!!")
except Exception as e:
    print("Failed, try again")
    print(str(e))

對於多個文件:-

from win32com import client
import os

directory = "...directory path"
path = os.path.join(directory)
for f in os.listdir(directory):
    file_name, file_extension = os.path.splitext(f) #split file name and extention
    inputFilePath = directory+ "/" + f
    outputFilePath = file_name + '.pdf'
    if file_extension == '.xlsx':
        excel  = client.DispatchEx("Excel.Application")
        excel.Interactive = False
        excel.Visible = False
        Workbook = excel.Workbooks.Open(inputFilePath , None, True)
        try:
            Workbook.ActiveSheet.ExportAsFixedFormat(0, outputFilePath)
            print("processing..")
        except Exception as e:
            print("Failed, try again")

我將不勝感激您提出的任何建議。 謝謝!!

我知道這個解決方案對你來說可能為時已晚。 我認為您的問題來自 inputfilepath 和 outputfilepath 變量。 我已經調整了你的代碼並且正在工作。

`

from win32com import client
import os

directory = r"....directory path...."
for file in os.listdir(directory):
    file_name, file_extension = os.path.splitext(file)  # split file name and extension
    input_file_path = os.path.join(directory, file)
    output_file_path = os.path.join(directory, file_name + '.pdf')
    if file_extension == '.xlsx' or file_extension == '.xls':
        excel = client.DispatchEx("Excel.Application")
        excel.Interactive = False
        excel.Visible = False
        workbook = excel.Workbooks.Open(input_file_path, None, True)
        workbook.ActiveSheet.ExportAsFixedFormat(0, output_file_path)

`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM