[Python] Multi-level list with each level number included

Discussão em 'Python' iniciado por Stack, Fevereiro 1, 2025.

  1. Stack

    Stack Membro Participativo

    Expect below style using python-docx:

    1 item 1
    1.1 item 1.1
    1.2 item 1.2
    2 item 2
    2.1 item 2.1
    2.2 item 2.2


    I tried below code, but it doesn't work. It turn out to be:

    1 item 1
    1 item 1.1
    2 item 1.2
    2 item 2
    1 item 2.1
    2 item 2.2


    numXML = doc.part.numbering_part.numbering_definitions._numbering
    nextAbstractId = max([J.abstractNumId.val for J in numXML.num_lst]) + 1
    ct_num = numXML.add_num(nextAbstractId)

    formats = {0: "decimal", 1: "upperLetter" }
    textFmts = {0: '%1.', 1: '%2.' }
    for i in range(2):
    lvl = ct_num.add_lvlOverride(i)
    numFmt = OxmlElement('w:numFmt')
    numFmt.set(qn('w:val'), formats)
    numText = OxmlElement('w:lvlText')
    numText.set(qn('w:val'), textFmts)
    lvl.append(numFmt)
    lvl.append(numText)

    num_pr = p._element._add_pPr().get_or_add_numPr()
    il = num_pr.get_or_add_ilvl()
    il.val = ilvl
    ni = num_pr.get_or_add_numId()
    ni.val = ct_num.numId

    Continue reading...

Compartilhe esta Página