需求
根据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模板。
项目地址:data_report
官方资料:
详细编程需求以及解决过程
根据一个段落标题,定位位于其下的表格
因为paragraphs和tables是完全分开的,所以需要其他的办法,在谷歌之后找到答案:
- https://github.com/python-openxml/python-docx/issues/222
- https://github.com/python-openxml/python-docx/issues/40
- https://github.com/python-openxml/python-docx/issues/276
其他资料:
- https://blog.csdn.net/u011995719/article/details/77178093
- https://blog.csdn.net/vip88886666/article/details/79596113
- https://blog.csdn.net/baidu_39416074/article/details/80926443
- https://blog.csdn.net/nicccccc/article/details/76147056
- https://wenku.baidu.com/view/0b1c5a2359fb770bf78a6529647d27284b73370b.html?re=view
- http://yshblog.com/blog/40
- https://blog.csdn.net/zhengyikuangge/article/details/80451424
- https://clay0x1.top/2018/08/13/openpyxl%E5%92%8Cwin32com%E4%BD%BF%E7%94%A8%E6%80%BB%E7%BB%93/
- https://zhuanlan.zhihu.com/p/32944388
- http://www.voidcn.com/code/p-dvwzvjkr-m.html
- https://my.oschina.net/duxuefeng/blog/64137
- https://www.cnblogs.com/youxin/p/3548647.html
- https://www.cnblogs.com/hupeng1234/p/6920129.html
- https://www.cnblogs.com/whchensir/p/5768030.html
- http://landcareweb.com/questions/32546/ru-he-shi-yong-python-docxti-huan-wordwen-dang-zhong-de-wen-ben-bing-bao-cun
- https://zhuanlan.zhihu.com/p/27135983
- https://www.yinyubo.cn/?p=352
- https://www.zhihu.com/question/64235925
- https://juejin.im/post/5ae9259c6fb9a07ab110f940
- https://bbs.csdn.net/topics/390824187
- http://www.bioinfo-scrounger.com/archives/693
- https://www.twblogs.net/a/5b7c74922b71770a43db0f50https://blog.csdn.net/u010541307/article/details/52862674
- https://blog.csdn.net/u012922806/article/details/85096074
- https://www.twblogs.net/a/5b7c74922b71770a43db0f50
- https://www.cnblogs.com/zhuluqing/p/8445901.html
- https://www.zhihu.com/question/24330579
- https://codeday.me/bug/20180828/235270.html
- https://my.oschina.net/zxcholmes/blog/484789
网友评论