写在前面
没错,又来了,还是那个敏感信息提取框架的项目,让我学到了很多,比如这次的针对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 Document
from pptx import Presentation
from openpyxl import load_workbook
原文始发于微信公众号(飞羽技术工坊):曲线救国!Python操控WPS文件自动
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论