带 TOC 的 WORD OLE
WORD OLE with TOC
我在使用 ole-automation 将内容插入现有 word 文档时遇到了一个有趣的问题,代码如下:
WordApp.Selection.HomeKey(unit := wdStory);
if FileExists(s) then
WordApp.Selection.InsertFile(Filename := s, ConfirmConversions := false,
Link := false, Attachment := false);
这适用于大多数 word 文档,除了那些我们将 "automatic table of Content" 作为文档中第一个元素的文档。在这种情况下,自动化崩溃:
This action is not valid outside of a block-level XML
我尝试了一些其他功能,例如:
WordApp.Selection.InsertText('Test') / (#13#10)
WordApp.Selection.InsertBreak(Page/Line)
同样的阴性结果。当第一个元素是自动 table.
时,光标位置似乎无效
我有什么办法解决这个问题吗?
您需要确保内容插入在文档的最开头并且第一段不包含内容控件(ToC 周围的内容) .
home 键并不总能让您回到最开始的地方。如果文档开头有 table 个内容,按主页键会将您带到包含 table 个内容的内容控件的开头。要排在前面,可以将Selection
的End
(和Start
)属性设置为0。此外,您必须在[=20之前插入一段=] 的内容:
WordApp.Selection.Start = 0
WordApp.Selection.End = 0
WordApp.Selection.InsertParagraphBefore
我在使用 ole-automation 将内容插入现有 word 文档时遇到了一个有趣的问题,代码如下:
WordApp.Selection.HomeKey(unit := wdStory);
if FileExists(s) then
WordApp.Selection.InsertFile(Filename := s, ConfirmConversions := false,
Link := false, Attachment := false);
这适用于大多数 word 文档,除了那些我们将 "automatic table of Content" 作为文档中第一个元素的文档。在这种情况下,自动化崩溃:
This action is not valid outside of a block-level XML
我尝试了一些其他功能,例如:
WordApp.Selection.InsertText('Test') / (#13#10)
WordApp.Selection.InsertBreak(Page/Line)
同样的阴性结果。当第一个元素是自动 table.
时,光标位置似乎无效我有什么办法解决这个问题吗?
您需要确保内容插入在文档的最开头并且第一段不包含内容控件(ToC 周围的内容) .
home 键并不总能让您回到最开始的地方。如果文档开头有 table 个内容,按主页键会将您带到包含 table 个内容的内容控件的开头。要排在前面,可以将Selection
的End
(和Start
)属性设置为0。此外,您必须在[=20之前插入一段=] 的内容:
WordApp.Selection.Start = 0
WordApp.Selection.End = 0
WordApp.Selection.InsertParagraphBefore