利用wps的com口用python实现excel转pdf

  • 因为最近每天都要进行表格相关的工作,每天都要整理数据导出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()
  • 如果有其他需求可以翻阅官网文档(挺难找,但写的很全,想必网上帖子少也有一部分原因在这)
  • 官方文档地址
posted @ 2024-07-16 18:24  lrplrplrp  阅读(64)  评论(0编辑  收藏  举报