在单词互操作中使用选择和范围

时间:2012-10-04 16:28:36

标签: c# .net interop ms-word office-interop

范围和选择如何运作?

如果您通过范围在页面顶部插入某些内容,是否通过插入带有选区的内容来覆盖?选择是否影响范围?

我遇到问题,我按此顺序插入,但InlineShapes显示在Range.Inserts上方文档的顶部。此外,Selection.InsertBefore被InlineShapes取代。

我希望我的范围插入显示在每张图片上方,如标题。怎么办呢?

Selection.InsertBefore
**Loop**
     Range.InsertParagraphAfter
     Selection.InlineShapes.AddPicture
**End Loop** 

我已经三次问过这样的问题而没有回复。什么都有帮助!

编辑:

我离我更近了一步。现在,当我添加InlineShapes时,我使用Content.InlineShapes.AddPicture(FileName:x,range:y)。现在图片显示在段落之间,但它们位于我添加图片之前添加到文档的表格的第一个单元格中。我添加了折叠范围的表格。

1 个答案:

答案 0 :(得分:9)

你写道:

I've asked a question like this three times now with no responses. Anything would help!

作为参考,提到的问题(我猜)是:

......现在都已经回答了:)

你在这篇文章中提出了多个问题 - 首先:

  

范围和选择如何运作?

实际上,文档很好地涵盖了这一点:

范围:

  

“表示文档中的连续区域。

     

每个Range对象都是   由起始和结束字符位置定义。类似于   方式书签用于文档中,Range对象用于   识别文件的特定部分......“

参考:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.range(v=office.14).aspx

  

如果您通过范围在页面顶部插入内容,则为   通过选择插入内容来覆盖?

可以。这取决于所选择的内容。如果您选择与您刚刚插入的内容范围相交的内容并更改内容,则您将更改该范围的内容。

要完全理解这一点,我建议你阅读:

  

选择是否会影响范围?

这取决于。文档说明:

  

范围对象与选择无关。

参考:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.range(v=office.14).aspx

...所以,如果你只是做一个简单的选择,以便,例如,阅读内容或复制内容 剪贴板,什么都不会改变。但是,如果您使用选择来更改内容,当然这会影响范围指向的内容。在此继续,您应该注意MS建议使用Range对象进行文档操作:

  

因为Range对象共享许多与之相同的方法和属性   使用Range对象的选择对象更适合于操作   没有理由改变电流的文件   选择。

参考:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word.selection.aspx

最后,你问:

  

我遇到问题,我按此顺序插入,但是   InlineShapes显示在文档顶部的上方   Range.Inserts。此外,Selection.InsertBefore被替换为   InlineShapes。

     

我希望我的范围插入显示在每张图片的上方,例如   标题。怎么办呢?

请参阅我之前对您问题的回答:“How to add items one at a time to to a new line a word document using word interop”此处:https://stackoverflow.com/a/12751805/700926 - 为您提供完整的答案。