python怎么重新开始_pythondocx如何重新开始列表刻字

我已经创建了一个pull请求(#582),它在一个低层次上解决了这种情况。我所做的只是定义实现WML的numbering子系统所需的XML类型。@scanny创建了一个名为xmlchemy的子模块,该子模块创建XML的半抽象表示,这样,如果您熟悉该标准,就可以处理多级列表和其他编号任务。因此,如果您构建我的fork,以下代码将起作用:#!/usr/bin/python

from docx import Document

from docx import oxml

d = Document()

"""

1. Create an abstract numbering definition for a multi-level numbering style.

"""

numXML = d.part.numbering_part.numbering_definitions._numbering

nextAbstractId = max([ J.abstractNumId for J in numXML.abstractNum_lst ] ) + 1

l = numXML.add_abstractNum()

l.abstractNumId = nextAbstractId

m = l.add_multiLevelType()

m.val = 'multiLevel'

"""

2. Define numbering formats for each (zero-indexed)

level. N.B. The formatting text is one-indexed.

The user agent will accept up to nine levels.

"""

formats = {0: "decimal", 1: "upperLetter" }

textFmts = {0: '%1.', 1: '%2.' }

for i in range(2):

lvl = l.add_lvl()

lvl.ilvl = i

n = lvl.add_numFmt()

n.val = formats[i]

lt = lvl.add_lvlText()

lt.val = textFmts[i]

"""

3. Link the abstract numbering definition to a numbering definition.

"""

n = numXML.add_num(nextAbstractId)

"""

4. Define a function to set the (0-indexed) numbering level of a paragraph.

"""

def set_ilvl(p,ilvl):

pr = p._element._add_pPr()

np = pr.get_or_add_numPr()

il = np.get_or_add_ilvl()

il.val = ilvl

ni = np.get_or_add_numId()

ni.val = n.numId

return(p)

"""

5. Create some content

"""

for x in [1,2,3]:

p = d.add_paragraph()

set_ilvl(p,0)

p.add_run("Question %i" % x)

for y in [1,2,3,4]:

p2 = d.add_paragraph()

set_ilvl(p2,1)

p2.add_run("Choice %i" % y)

d.save('test.docx')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值