折叠和扩展

前面几节已经多次用到了Collapse方法,使用该方法对字符序列内容进行折叠。这里的折叠是什么意思呢?我们对一个字符序列插入换行符或特殊符号,默认时会用插入的字符替换字符序列中的文本,替换后实际上就只有一个插入点了。如果保留字符序列,那么就有字符序列前和字符序列后两个插入点。选择哪个点插入呢?这里就要用到Collapse方法,通过设置Direction参数确定将文本内容折叠到起点处还是终点处,从而确定插入的点。

图3-29中在字符序列后插入了特殊符号,如果希望在文本前插入,只需修改Collapse方法Direction参数的取值就可以了,即

code.python
>>> rng.Collapse(Direction=constants.wdCollapseStart)
>>> rng.InsertSymbol(CharacterNumber=87, Font="Symbol')

会在字符序列前插入该特殊符号。

使用Range对象的Expand方法可以对指定文本进行扩展。该方法的语法格式为:

code.python
rng.Expand(Unit)

其中,rng是Range对象,Unit参数是对rng进行展开的度量单位,可以是wdUnits 常量之一,即wdCharacter, wdWord, wdSentence, wdParagraph, wdSection, wdStory, wdCell, wdColumn, wdRow或wdTable。

这里,rng可以是几个连续的字符或单词等,用Expand可以将它扩展到它所在的句子、段落或节等。

下面对于文档doc中第26到34个字符定义的字符序列,用Expand方法将它扩展到它所在的段落。

code.python
>>> rng=doc.Range(Start=26,End=34)
>>> rng.Expand(Unit=constants.wdParagraph)
>>> rng.Select()

设置后,选择该字符序列,发现整个段落被选中了,说明原字符序列已经扩展到了整个段落。

使用Expand方法可以对指定文本两端进行扩展,使用MoveStart方法和MoveEnd方法则可以对指定文本的前端和后端进行扩展。

下面对于文档doc中第26到34个字符定义的字符序列,用MoveEnd方法对字符序列末端进行扩展,扩展的长度为一个句子,即它当前所在的句子。

code.python
>>> rng=doc.Range(Start=26,End=34)
>>> rng.MoveEnd(Unit=constants.wdSentence,Count=1)
>>> rng.Select()

选择当前的字符序列,效果如图3-30所示。

Document Image

图3-30 对指定字符序列末端进行扩展

用MoveStart方法对字符序列首端方向进行扩展。注意,此时需要设置该方法的Count参数的值为负值,为负值表示向后扩展,为正值表示向前扩展。下面用MoveStart方法对字符序列向后扩展,单位为1个句子。

code.python
>>> rng=doc.Range(Start=26,End=34)
>>> rng.MoveStart(Unit=constants.wdSentence,Count=-1)
>>> rng.Select()

选择当前字符序列,效果如图3-31所示。

Document Image

图3-31 在1个句子范围内向后扩展