python操作word文档

2019-03-21  本文已影响0人  liuqinh2s

需求

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

发现

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

python3操作Word的库:

在安装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是完全分开的,所以需要其他的办法,在谷歌之后找到答案:

其他资料:

上一篇 下一篇

猜你喜欢

热点阅读