開發頁面: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,添加文本時需注意一下。