(二)表格篇(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