带有TOC的WORD OLE

时间:2016-09-13 06:49:50

标签: ms-word ole tableofcontents

当使用ole-automation将内容插入现有word文档时,我遇到了一个有趣的问题:

WordApp.Selection.HomeKey(unit := wdStory);
if FileExists(s) then
  WordApp.Selection.InsertFile(Filename := s, ConfirmConversions := false, 
  Link := false, Attachment := false);

这适用于大多数word文档,除了那些我们在文档中作为第一个元素的“自动内容表”。在这种情况下,自动化崩溃:

  

此操作在块级XML

之外无效

我尝试了一些其他功能,如:

WordApp.Selection.InsertText('Test') / (#13#10)
WordApp.Selection.InsertBreak(Page/Line)

具有相同的否定结果。当第一个元素是自动表时,似乎光标位置无效。

我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

您需要确保在文档的最开头插入内容,即第一段不包含内容控件(ToC周围的内容)。

主页键并不总是让你到最开始。如果是文档开头的目录,按home键会将您带到包含目录的内容控件的开头。要进入前面,您可以将End的{​​{1}}(和Start)属性设置为0.此外,您必须在目录之前插入一个段落:

Selection