- 因為最近每天都要進行表格相關的工作,每天都要整理資料匯出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
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()
- 如果有其他需求可以翻閱官網文件(挺難找,但寫的很全,想必網上帖子少也有一部分原因在這)
- 官方文件地址