我不确定这是否可能。它看起来好像Word实际上是在处理输入键的按下(我把这个操作当作一种程序化的等同于“\ r \ n”和“\ n”的操作)来创建一个新的段落。
如果我在Word中录制一个宏,包括:
键入文字 “一”
按enter键
我得到的VBA:
Selection.TypeText Text:="One"
Selection.TypeParagraph
如果我创建一个看起来像这样一个Word文档(按压每个字后面输入):
One
Two
Three
该文件的身体看起来像这样在documents.xml文件:
One
Two
Three
从MSDN我们可以看到
元素代表了一个段落。
我认为解决这将是按照Python Docx的例子:
body.append(paragraph("Hi."))
body.append(paragraph("My name is Alice."))
body.append(paragraph("Let's code"))
或者:
for paragraph_text in "Hi. \nMy name is Alice.\n Let's code".split("\n"):
body.append(paragraph(paragraph_text.strip()))
编辑:
展望这一些更多,如果你在Word中按Shift + Enter它通过追加Chr(11)添加手动换行符(不是段落)。在Open XML中,这转换为Break。
望着docx.py文件的Python DOCX的,这样的事情可能是要走的路(免责声明:未测试):
for text in "Hi. \nMy name is Alice.\n Let's code".split("\n"):
run = makeelement('r')
run.append(makeelement('t', tagtext=text))
run.append(makeelement('br'))
body.append(run)