我一直在尝试找到一种方法,使用 python-docx 将 docx 文件中的所有项目符号列表更改为数字列表。到目前为止,我已经尝试使用 paragraph.style
属性。做这样的事情:
if paragraph.style.name == 'Bullet List':
paragraph.style = styles['List Number']
它适用于基本的 docx 文件,但有时,对于更复杂的文档,即使给定的段落在文档中显示为项目符号列表,paragraph.style.name
也会返回类似 'Body Text'
的内容。我只是想知道是否可以使用 python-docx 库来实现这一点,或者我可能需要寻找其他东西。谢谢。
答案 0 :(得分:0)
简短的回答是否定的。您看到的是使用工具栏按钮应用于段落的项目符号,该按钮将项目符号格式直接应用于段落。在段落级别(最低级别)应用的任何格式都会覆盖从样式继承的格式。
您需要做的是删除手动段落格式(可能通过选择段落并按 Ctrl-Q),如此处和其他网络资源中所述,我敢肯定:{{3} }
删除这些“覆盖”后,样式应该可以自由发挥作用。
没有 python-docx
API 对应于“remove-all-formatting”。如果您想以编程方式执行此操作,则需要自己操作 XML。 python-docx
可以让您使用 p = paragraph._p
进入段落元素,然后 print(p.xml)
可以向您展示 XML 的外观,但是从那里您可以自己使用 { 操作该 XML 子树{1}} 次调用。在 lxml
上搜索有关其外观的一些想法。