- 因为最近每天都要进行表格相关的工作,每天都要整理数据导出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()
- 如果有其他需求可以翻阅官网文档(挺难找,但写的很全,想必网上帖子少也有一部分原因在这)
- 官方文档地址