利用wps的com口用python實現excel轉pdf

lrplrplrp發表於2024-07-16
  • 因為最近每天都要進行表格相關的工作,每天都要整理資料匯出pdf,因為匯出的表格格式比較複雜,要求也比較嚴格,所以python匯出pdf的庫都滿足不了需求,比較好用的又需要付費,最後摸索到了可以用應用的com口完成匯出
  • 因為微軟excel在匯出多個sheet時比較大的sheet頁並不會縮小內容而是擴大頁面,匯出的pdf大小不一,所以用wps的excel,呼叫windows的com口需要用到win32com庫,首先確認安裝
pip install win32com
  • 隨後確認自己wps的版本,不同版本的wps,類字串是不同的,如果報錯無效的類字串,就需要檢查是否是類字串與wps版本不匹配,如果不確定,可以挨個試一遍,都不行的話就是wps安裝的問題了,可以重置登錄檔試一試。
#這一步是連結com口獲取功能
win32com.client.Dispatch("et.Application")
win32com.client.Dispatch("ket.Application")#我的是這個
win32com.client.Dispatch("EXCEL.Application")#微軟excel
  • 轉pdf程式碼:
import win32com.client
 
def excel_to_pdf(excel_file, output_pdf_file):
    wc=win32com.client.constants
    # 啟動WPS Office應用
    wps = win32com.client.Dispatch('ket.Application')
    # 設定WPS不可見
    wps.Visible = False
    # 開啟Excel檔案
    excel = wps.Workbooks.Open(excel_file)
    # 轉換為PDF
    excel.SaveAs(Filename=output_pdf_file, FileFormat="103")  # 103 表示匯出為pdf
    # 關閉Excel檔案
    excel.Close(SaveChanges=False)
    # 退出WPS Office應用
    wps.Quit()
  • 如果有其他需求可以翻閱官網文件(挺難找,但寫的很全,想必網上帖子少也有一部分原因在這)
  • 官方文件地址

相關文章