(二)表格篇(table)html
選你所需便可。下面開始正文。python
最近公司的項目,須要在頁面上顯示word文件的內容。我找了幾個前端寫法,都沒用明白(由於我前端太渣),用起來簡單的要麼收費,要麼加了水印。那怎麼辦捏?數組
docx.paragraphs
就能夠得到所有的段落。這是一個可迭代的類型,相似於數組若是咱們用app
p=docx.paragraphs[0]
就能夠直接得到文章中的第一段,而接下來框架
p.text
就是第一段的所有文字內容。若是咱們連貫起來寫,代碼應該是醬嬸滴:spa
for p in docx.paragraphs: print(p.text)
怎麼樣,是否是很方便?設計
p.runs
便可。這一樣是個可迭代的類型,能夠循環得到每個run相關的內容,好比alignment(對齊方式),bold(加粗),italic(斜體),text(具體文本內容)等等。code
doc.add_paragraph(u'第一段',style=None) doc.add_paragraph(u'第二段',style='Heading 2') p = doc.add_paragraph('') p.add_run('第三段', style=None) p.add_run('123', style="Heading 1 Char") p.add_run('456') p.add_run('789', style="Heading 2 Char")
而對於每個屬性,均可以查看它的類型,這個類型通常在docx中是個枚舉類型的常量,放在docx.enum.text這個頭文件中。使用方法能夠這樣:orm
if p.alignment == WD_PARAGRAPH_ALIGNMENT.CENTER: # todo
固然,我所作的這堆工做,目的其實不只僅是爲了得到文件內容,還要放在頁面上展現。有了上面的屬性,作起來就簡單多了。
html = "<p" if title in self.paragraph.text and len(self.paragraph.text) < 15: html += " style=\"text-align: center; font-size: 30px\">" elif self.paragraph.alignment == WD_PARAGRAPH_ALIGNMENT.CENTER: html += " style=\"text-align: center; font-size: 15px\">" elif self.paragraph.alignment == WD_PARAGRAPH_ALIGNMENT.RIGHT: html += " style=\"text-align: right; font-size: 15px\">" else: html += " style=\"font-size: 15px\">" html += "%s</p>" % p
這樣實際上是用代碼活生生地生成了一段html。若是是用jinja模板的框架,能夠吧這段html直接經過view傳到頁面上,而後在頁面上使用
{{ paragraph|safe }}
來展現。
p.paragraph_format.element.xml