如何使用 python create/modify 动态 Table MS word 中的内容

How to create/modify dynamic Table of Contents in MS word by using python

everyone.I 正在编写一个 python 脚本,可以使用 xml 文件自动生成 MS-Word。我正在使用 python 库 docxtpl 来完成这项工作。

例如,如果我的脚本 xml 是这样的:

<?xml version="1.0" encoding="UTF-8"?>
<Test>
<egg type="Text">some normal text.</egg>
<apple type="RichText" font="Times New Roman" color="#ff00ff" bold="True">This is a very big apple.</apple>
<banana type="Inline image" width='500' height='400'>D:\Tannis\Format_Bot\image4324.jpg</banana>
<orange type="Replace picture" target="target.jpg">D:\Tannis\Format_Bot\image\source.jpg</orange>
</test>

然后我的脚本可以插入那些text/picture或替换MS-Word中的图片。现在我的脚本可以处理 text/picture/table/header/footer。

但我不知道如何 create/modify Table MS-Word 的目录 (ToC)。比如我的MS-word的内容可能是动态的,有的多有的少。在这种情况下,我的 ToC 必须动态更改。

看来docxtpl无法胜任这项工作。我google这个问题,但对我来说没有好的解决方案。

有谁能想出一些解决办法吗?使用其他python 库是找到的,我会学习。

任何帮助将不胜感激,谢谢!

基本上你 don't have to create/modify Table 的内容。按照以下步骤,你会没事的:

  • 在模板中插入由 MS Word 自动生成的虚拟 Table 内容。
  • 这个虚拟 toc 的作用是,当您右键单击并 select 更新字段时,它会自动生成 table 的内容。您所要做的就是使用标题元素来表明您正在创建一个 bookmark-able 元素。
  • docxtpl 生成文档后,打开它并右键单击目录,select update fields.
  • 你好!您的 table 内容已轻松更新。

docxtpl 太棒了。但是不要再认为您必须只使用 docxtpl 来完成所有事情。让 MS Word 做它更擅长做的事情。

docxtpl 正在开发中。所以上面所说的方式是你最好的选择。我在我的一个项目中使用了相同的方法。工作得很好。