python 操作word文档_python操作word文档

论坛 期权论坛 脚本     
已经匿名di用户   2021-11-11 18:06   3424   0

需求

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

发现

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

python3操作Word的库:

pip3 install python-docx、import docx:只对windows平台有效

pip3 install pypiwin32、import win32com:跨平台,但无法处理doc格式的word文本,doc格式不是基于xml的

pip3 install textract、import 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模板。

官方资料:

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

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

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

其他资料:

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:81
帖子:4969
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP