曲线救国!Python操控WPS文件自动

admin 2023年10月10日00:45:06评论63 views字数 1526阅读5分5秒阅读模式

写在前面

没错,又来了,还是那个敏感信息提取框架的项目,让我学到了很多,比如这次的针对WPS格式文件的操作,直接开始记录吧。

背景

对于office,python都有对应的自动化库这个就不过多赘述了,但是它并不兼容WPS格式的。根据在项目开发时的经验,wps的文件格式中.wps对应的是word,.dps对应的是ppt,.et对应的是excel等等这些,我就把他们称之为类word格式,类ppt格式,类excel格式吧。

原本貌似wps是有一个python的自动化库的,但好像早就废弃了,各种查找也没有找到一个现成的直接自动化的方案,于是换了一种思路......

曲线救国

既然没有办法直接自动化,那为啥不把所有类office文件全都转为office的文件呢?

这里我们用到了一个核心的库comtypes,我就不废话了,直接上代码吧

注意:前提是你电脑上有word,powerpoint,excel三个软件

 word

import comtypes.client
def convert_doc_to_docx(doc_path): """ 转为docx      :param ppt_path:    """ word = comtypes.client.CreateObject("Word.Application") doc = word.Documents.Open(doc_path) doc.SaveAs("demo.docx", 16) # 16 表示保存为 docx 格式 doc.Close() word.Quit()

ppt

import comtypes.client

def convert_ppt_to_pptx(ppt_path):    """      转为pptx      :param ppt_path: 原类ppt文件路径    """    powerpoint = comtypes.client.CreateObject("Powerpoint.Application")    powerpoint.Visible = True    presentation = powerpoint.Presentations.Open(ppt_path)    presentation.SaveAs("demo.pptx"24)  # 24 表示保存为 pptx 格式    presentation.Close()    powerpoint.Quit()

excel

import comtypes.client

def convert_xls_to_xlsx(xls_path): """ 将xls文件转为xlsx格式      :param xls_path: 输入的xls文件路径    """    excel = comtypes.client.CreateObject("Excel.Application")    excel.Visible = False    workbook = excel.Workbooks.Open(xls_path)    workbook.SaveAs("demo.xlsx", FileFormat=51)  # 51 表示xlsx格式    workbook.Close()    excel.Quit()

随后,你便可以使用下面的库去对转换后的office文件进行自动化操作了。

from docx import Documentfrom pptx import Presentationfrom openpyxl import load_workbook



原文始发于微信公众号(飞羽技术工坊):曲线救国!Python操控WPS文件自动

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月10日00:45:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   曲线救国!Python操控WPS文件自动https://cn-sec.com/archives/2098271.html

发表评论

匿名网友 填写信息