曲线救国!Python操控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:
    :param pptx_path:
    :return:
    """
    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,自动化)