开发页面:http://python-docx.readthedocs.io
#1 pip install python-docx安装失败
pip会自动先安装python-docx的前置需求包lxml,但安装失败。
解决方案为通过下载lxml.whl文件进行安装。
首先安装whl包:pip install wheel
接着去开发者页面下载lxml的安装包:https://pypi.python.org/pypi/lxml。页面默认是最新版本,可以根据需求找到其他版本下载。
命令行进入安装包所在目录,执行pip install 安装包名称
#2 paragraph
docx中文本的结构是document->paragraph->run->text。其中text为纯文本,run为之添加了样式,而paragraph可以包含多段不同样式的run。
paragraph包含一个固定在末尾的换行符,起到分段作用。在text中添加\n也可以实现换行效果,但在word中显示为软回车(即:↓),依然属于同一段落。
通过document.paragraph,可以获得包含文档中所有paragraph的list。heading本质上也是一种paragraph,也会被纳入这个list中。
需要注意的是,paragraph仅能被清空,但无法被去除。因此对于需要修改文档的程序,要谨慎设计paragraph的创建。
#3 style
推荐这一篇博文:https://zhuanlan.zhihu.com/p/23708800?utm_source=tuicool&utm_medium=referral (作者:Jerry Jho
#4 中文字体的设置
docx中存在一个bug:run.font.name = u'宋体'仅对中文字体有效。
解决方案:使用下面两句命令
run.font.name = u'字体1'
run._element.rPr.rFonts.set(docx.oxml.ns.qn('w:eastAsia'), u'字体2')
这样该run中的中文字体为字体2,其余字体为字体1。
#5 table
python-docx的table功能目前还不够完善,例如列宽只能设置成为固定值。
table的每一个cell生成时都自动包含一个内容为空的paragraph,添加文本时需注意一下。