如何使用python-docx以编程方式在MS Word中以编程方式实现列中的列

时间:2015-06-08 10:46:43

标签: python ms-word python-docx

我需要为word文档实现一个设计。我必须使用python-docx库以编程方式将页面布局设置为该文档的2列布局。请帮忙。

3 个答案:

答案 0 :(得分:2)

好吧我找到了解决方法, 1.制作一个Document对象 2.添加一些段落 3.参加[0]部分 4.使用cols = sectPr.xpath(' ./ w:cols')查询现有w:cols的xpath 5.然后设置' num' w:cols的属性使用cols.set(qn(' w:num')," 2")

为我工作......

答案 1 :(得分:2)

我谷歌提出这个问题,并按照你对stackoverflow和谷歌论坛的评论,我解决了这个问题,下面的代码帮助我,也许任何人都可以使用它:))

from docx import Document
from docx.oxml import OxmlElement
from docx.oxml.ns import qn

document = Document()
section = document.sections[0]

sectPr = section._sectPr
cols = sectPr.xpath('./w:cols')[0]
cols.set(qn('w:num'),'2')

document.save('demo.docx')

我测试了这段代码,它帮助我制作了两个cols布局的空docx文件。

谢谢gaurav!

答案 2 :(得分:0)

我需要在同一页面上添加两列文本,此代码对我有用:

section = doc.sections[0]

sectPr = section._sectPr
cols = sectPr.xpath('./w:cols')[0]
cols.set(qn('w:num'),'2')

但这为我创建了两个空白部分。为了访问右手部分,此代码对我有用:

current_section = doc.sections[-1]  
current_section.start_type
new_section = doc.add_section(WD_SECTION.NEW_COLUMN)
new_section.start_type

之后,您将输入剩余的文本,该文本将显示在右侧。 希望对您有所帮助!