美文网首页
python操作word文档

python操作word文档

作者: liuqinh2s | 来源:发表于2019-03-21 17:14 被阅读0次

    需求

    根据Word模板,生成数据报告。

    发现

    升级python3的pip,以管理员身份运行:pip3 install --upgrade pip

    python3操作Word的库:

    • pip3 install python-docximport docx:只对windows平台有效
    • pip3 install pypiwin32import win32com:跨平台,但无法处理doc格式的word文本,doc格式不是基于xml的
    • pip3 install textractimport textract:它同时兼顾“doc”和“docx”,但安装过程需要一些依赖。

    在安装textract的时候,提示缺少swig.exe:error: command 'swig.exe' failed: No such file or directory install textract下载swig.exe的Windows版,注意配置完path之后要记得重启cmd。

    但实际使用中又遇到一些问题,主要是python对Windows平台的不兼容问题。比如echo在Windows上是一个内置在cmd的命令,比如Windows没有fork等等问题,比如Windows上没有antiword,而实际上textract就是调用了antiword来处理Word。

    所以我打算先将doc转为docx,然后再用python-docx处理。在使用docx直接输出所有段落的时候发现很多表格都不见了:

    import docx
    
    def read_docx(file_name):
        doc = docx.Document(file_name)
        content = '\n'.join([para.text for para in doc.paragraphs])
        return content
    

    这是因为表格和段落分别使用了不同的对象进行存储。

    经过两天的学习,终于使用docx库完成了对docx格式的文件的提取信息,以及自动化编辑word模板。

    项目地址:data_report

    官方资料:

    详细编程需求以及解决过程

    根据一个段落标题,定位位于其下的表格

    因为paragraphs和tables是完全分开的,所以需要其他的办法,在谷歌之后找到答案:

    其他资料:

    相关文章

      网友评论

          本文标题:python操作word文档

          本文链接:https://www.haomeiwen.com/subject/kmqzmqtx.html