我一直在尝试使用python-docx将docx文件中的所有项目符号列表更改为数字列表。到目前为止,我已经尝试使用paragraph.style
属性。像这样做一些事情:
if paragraph.style.name == 'Bullet List':
paragraph.style = styles['List Number']
它适用于基本的文档文件,但有时,对于更复杂的文档,即使给定的段落在文档中显示为项目符号列表,paragraph.style.name
也会返回类似'Body Text'
的内容。我只是想知道是否有可能使用python-docx库来实现这一点,或者我可能需要寻找其他库。谢谢。
发布于 2021-04-20 06:34:59
简短的回答是否定的。您看到的是使用工具栏按钮应用于段落的项目符号,这会将项目符号格式直接应用于段落。在段落级别(最低级别)应用的任何格式都会覆盖从样式继承的格式。
要解决这个问题,您需要做的是删除手动段落格式(可能是通过选择段落并按Ctrl-Q),就像在这里和其他web资源中所描述的那样,我敢肯定:https://www.okbar.org/lpt_articles/removing-formatting-from-word-documents/
在这些“覆盖”被移除之后,样式应该可以自由地执行其工作。
没有与“remove- python-docx
-formatting”对应的python-docx
应用编程接口。如果您希望以编程方式完成此操作,则需要自己操作XML。python-docx
可以使用p = paragraph._p
将您带到段落元素,然后print(p.xml)
可以向您展示XML是什么样子的,但是在那里,您需要自己使用lxml
调用来操作XML子树。在python-docx workaround function
上搜索一些关于这是什么样子的想法。
https://stackoverflow.com/questions/67153138
复制相似问题