Skip to content

选区(Selection)

表示窗口或窗格中的当前选定内容。

选定内容表示文档中的选定(或突出显示)区域,或者代表插入点(如果未选择文档中的任何内容)。

每个文档窗格只能有一个 Selection 对象,并且在整个应用程序中只能有一个活动的 Selection 对象。

属性列表

属性说明支持度
返回或设置一个 Font 对象,该对象代表指定对象的字符格式
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
返回或设置一个 ParagraphFormat 对象,该对象代表指定选定内容中的段落设置。
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
返回一个 Range 对象, 该对象代表指定对象中包含的文档部分
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
返回一个 Tables 集合,该集合代表指定选定内容的所有表格
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
返回一个 Rows 集合,该集合代表区域、选定内容或表格中的所有表格行。此为只读属性
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
返回一个 Cells 集合,该集合代表选定内容中的表格单元格。此为只读属性
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
返回一个 InlineShapes 集合,该集合代表选定内容中所有的 InlineShape 对象。此为只读属性
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

方法列表

方法说明支持度
修改区域范围
支持
将指定的选定内容复制到剪贴板
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
删除选区内容
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
获取目标 gcp 在正文中的坐标,相对于正文容器,而不是窗口
JSSDK: v1.1.14+、WebOffice v3.3.1+ 支持
根据传入的 gcp 获取对应的相对位置(相对于 document.body),位置不在可视区时返回 -1
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
表达式:文档类型应用对象。
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
获取当前页
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
选区后插入文本
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
在选区后面插入分隔符
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
用新段落替换指定的所选内容
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
将选区范围向下移动
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
将选区范围向左移动
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
将选区范围向右移动
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
将选区范围向上移动
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持
删除选区位置前的字符
JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

Font

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

返回或设置一个 Font 对象,该对象代表指定对象的字符格式

语法

表达式.ActiveDocument.ActiveWindow.Selection.Font

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 选区对象
  const selection = await app.ActiveDocument.ActiveWindow.Selection

  // Font 对象
  const font = await selection.Font
}

ParagraphFormat

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

返回或设置一个 ParagraphFormat 对象,该对象代表指定选定内容中的段落设置。

语法

表达式.ActiveDocument.ActiveWindow.Selection.ParagraphFormat

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 选区对象
  const selection = await app.ActiveDocument.ActiveWindow.Selection

  // ParagraphFormat 对象
  const paragraphFormat = await selection.ParagraphFormat
}

Range

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

返回一个 Range 对象, 该对象代表指定对象中包含的文档部分

语法

表达式.ActiveDocument.ActiveWindow.Selection.Range

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 选区对象
  const selection = await app.ActiveDocument.ActiveWindow.Selection

  // Range 对象
  const range = await selection.Range
}

Tables

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

返回一个 Tables 集合,该集合代表指定选定内容的所有表格

语法

表达式.ActiveDocument.ActiveWindow.Selection.Tables

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 选区对象
  const selection = await app.ActiveDocument.ActiveWindow.Selection

  // Tables 对象
  const font = await selection.Tables
}

Rows

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

返回一个 Rows 集合,该集合代表区域、选定内容或表格中的所有表格行。此为只读属性

语法

表达式.ActiveDocument.ActiveWindow.Selection.Rows

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 选区对象
  const selection = await app.ActiveDocument.ActiveWindow.Selection

  // Rows 对象
  const font = await selection.Rows
}

Cells

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

返回一个 Cells 集合,该集合代表选定内容中的表格单元格。此为只读属性

语法

表达式.ActiveDocument.ActiveWindow.Selection.Cells

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 选区对象
  const selection = await app.ActiveDocument.ActiveWindow.Selection

  // Cells 对象
  const cells = await selection.Cells
}

InlineShapes

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

返回一个 InlineShapes 集合,该集合代表选定内容中所有的 InlineShape 对象。此为只读属性

语法

表达式.ActiveDocument.ActiveWindow.Selection.InlineShapes

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 选区对象
  const selection = await app.ActiveDocument.ActiveWindow.Selection

  // InlineShapes 对象
  const font = await selection.InlineShapes
}

SetRange()

修改区域范围

语法

表达式.ActiveDocument.Range(Start, End).SetRange({ Start, End })

或者表达式.ActiveDocument.Tables.Item(Index).Rows.Item(Index).Cells.Item(Index).Range.SetRange({ Start, End })

表达式:文档类型应用对象

参数

属性类型默认值必填说明
Start
number
区域开始位置
End
number
区域结束位置

示例 1

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 获取选中区域
  const range = await app.ActiveDocument.Range(0, 10)

  // 设置区域范围
  await range.SetRange(10, 20)
}

示例 2

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 获取第 1 个表格
  const tableOne = await app.ActiveDocument.Tables.Item(1)

  // 获取表格第 1 行的第 1 个单元格
  const cellOne = await tableOne.Rows.Item(1).Cells.Item(1)

  // 获取该单元格的区域对象
  const range = await cellOne.Range

  // 单元格字体属性
  const font = await range.Font

  // 修改区域范围
  const newRange = await range.SetRange({
    Start: 1,
    End: 10
  })
  const newText = await newRange.Text // 获取新区域文本
  console.log(newText)
}

Copy()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

将指定的选定内容复制到剪贴板

语法

表达式.ActiveDocument.ActiveWindow.Selection.Copy()

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 选中前 10 文字
  await app.ActiveDocument.Range.SetRange(1, 10)

  // 将指定的选定内容复制到剪贴板
  await app.ActiveDocument.ActiveWindow.Selection.Copy()

  // 内容已复制到剪切板,通过 Ctrl + V 可以粘贴
}

Delete()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

删除选区内容

语法

表达式.ActiveDocument.ActiveWindow.Selection.Delete(WdUnits)

表达式:文档类型应用对象

参数

WdUnits 是枚举,具体可看: Enum.WdUnits

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 删除选区内容
  app.ActiveDocument.ActiveWindow.Selection.Delete(1)
}

GetPosByGcp()

JSSDK: v1.1.14+、WebOffice v3.3.1+ 支持

获取目标 gcp 在正文中的坐标,相对于正文容器,而不是窗口

GCP:global character position

语法

表达式.ActiveDocument.ActiveWindow.Selection.GetPosByGcp({ Pos })

表达式:文档类型应用对象

参数

属性数据类型默认值必填说明
Gcp
Number
正文的位置

返回值

返回对应的 (x, y) 表示对应的坐标信息

属性数据类型说明
X
Number
x 轴
Y
Number
y 轴

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 返回正文的位置
  const pos = await app.ActiveDocument.ActiveWindow.Selection.GetPosByGcp(1)
  console.log(pos)
}

GetRelativePosByGcp()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

根据传入的 gcp 获取对应的相对位置(相对于 document.body),位置不在可视区时返回 -1

GCP:global character position

语法

表达式.ActiveDocument.ActiveWindow.Selection.GetRelativePosByGcp({ Gcp })

表达式:文档类型应用对象

参数

属性数据类型默认值必填说明
Gcp
Number
根据传入的 gcp 获取对应的相对位置(相对于 document.body),位置不在可视区时返回 -1

返回值

返回对应的 (x, y) 表示对应的坐标信息

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 根据传入的 gcp 获取对应的相对位置(相对于document.body),位置不在可视区时返回 -1
  await app.ActiveDocument.ActiveWindow.Selection.GetRelativePosByGcp(1)
}

GoTo()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

GoTo() 方法可以协助我们跳转到页面的指定位置,例如指定页面或者指定的书签。

由于文字文档是流式排版,大文档时,跳转时间会比较长,建议加一个中间 loading 过渡效果。

语法

表达式.ActiveDocument.ActiveWindow.Selection.GoTo(What, Which, Count, Name)

表达式:文档类型应用对象。

参数

属性数据类型默认值必填说明
What
Number
可选
指定区域或选定内容要移动到的项的类别。可以是 WdGoToItem 常量之一。指定为 WdGoToItem.wdGoToBookmark,表明需要跳转的类型是书签;指定为 WdGoToItem.wdGoToPage,表明需要跳转的类型是页面
Which
Number
可选
指定区域或选定内容要移动到的项。可以是 WdGoToDirection 常量之一。指定为 WdGoToDirection.wdGoToAbsolute,表明是绝对定位
Count
Number
可选
在文档中的项的数目。默认值为 1。仅正值有效。
Name
String
可选
如果那些参数是 wdGoToBookmark,则此参数指定一个名称。

返回值

返回到跳转后的页面。

示例 1

跳转到指定的页面

js
//@file=base.docx
// 跳转到指定页
async function example() {
  await instance.ready()

  const app = instance.Application

  const page = await app.ActiveDocument.ActiveWindow.Selection.GoTo(
    app.Enum.WdGoToItem.wdGoToPage,
    app.Enum.WdGoToDirection.wdGoToAbsolute,
    3
  )
}

示例 2

跳转到指定的书签

js
//@file=base.docx
// 获取所有书签
async function example() {
  await instance.ready()

  const app = instance.Application

  // 添加书签
  await app.ActiveDocument.ActiveWindow.Bookmarks.Add({
    Name: 'WebOffice',
    Range: {
      Start: 1,
      End: 10
    }
  })

  // 跳转到指定的书签
  await app.ActiveDocument.ActiveWindow.Selection.GoTo(
    app.Enum.WdGoToItem.wdGoToBookmark, // 类型:Bookmark
    app.Enum.WdGoToDirection.wdGoToAbsolute, // 定位
    undefined, // 数量
    'WebOffice' // 书签名
  )

  // 或者
  await app.ActiveDocument.ActiveWindow.Selection.GoTo({
    What: app.Enum.WdGoToItem.wdGoToBookmark,
    Which: app.Enum.WdGoToDirection.wdGoToAbsolute,
    Name: 'WebOffice' // 书签名
  })
}

Information()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

获取当前页

由于文字文档是流式排版,没办法一开始就确定最终页数,只有浏览到最底部才知道总页数。

语法

表达式.ActiveDocument.ActiveWindow.Selection.Information(WdInformation)

表达式:文档类型应用对象

参数

属性数据类型默认值必填说明
WdInformation
Enum
指定返回的涉及指定所选内容或区域的信息的类型。为 3 (WdInformation.wdActiveEndPageNumber)表示页码,在该页中包含指定的所选内容或区域的活动结尾。从文档开头计数。忽略任何对页码的手动调整

返回值

返回 Number 代表当前页页码

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 获取当前页数
  const currentPage =
    await app.ActiveDocument.ActiveWindow.Selection.Information(
      app.Enum.WdInformation.wdActiveEndPageNumber
    )
  console.log(currentPage)
}

InsertAfter()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

选区后插入文本

语法

表达式.ActiveDocument.ActiveWindow.Selection.InsertAfter(Text)

表达式:文档类型应用对象

参数

属性数据类型默认值必填说明
Text
String
需要插入的文本

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 选区后插入文本
  await app.ActiveDocument.ActiveWindow.Selection.InsertAfter('Text')
}

InsertBreak()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

在选区后面插入分隔符

语法

表达式.ActiveDocument.ActiveWindow.Selection.InsertBreak({ Type })

表达式:文档类型应用对象

参数

属性数据类型默认值必填说明
Type
Enum
Enum.WdBreakType.wdPageBreak
要插入的分页符的类型。默认值是 wdPageBreak,详细可参考 Enum.WdBreakType

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 选区位置插入分隔符(由于是默认值,所以可以不传)
  await app.ActiveDocument.ActiveWindow.Selection.InsertBreak()
}

InsertParagraph()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

用新段落替换指定的所选内容

语法

表达式.ActiveDocument.ActiveWindow.Selection.InsertParagraph()

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 用新段落替换指定的所选内容
  await app.ActiveDocument.ActiveWindow.Selection.InsertParagraph()
}

MoveDown()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

将选区范围向下移动

语法

表达式.ActiveDocument.ActiveWindow.Selection.MoveDown()

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 将光标向下移动
  await app.ActiveDocument.ActiveWindow.Selection.MoveDown()
}

MoveLeft()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

将选区范围向左移动

语法

表达式.ActiveDocument.ActiveWindow.Selection.MoveLeft()

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 将光标向左移动
  await app.ActiveDocument.ActiveWindow.Selection.MoveLeft()
}

MoveRight()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

将选区范围向右移动

语法

表达式.ActiveDocument.ActiveWindow.Selection.MoveRight()

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 将光标向右移动
  await app.ActiveDocument.ActiveWindow.Selection.MoveRight()
}

MoveUp()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

将选区范围向上移动

语法

表达式.ActiveDocument.ActiveWindow.Selection.MoveUp()

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 将光标向上移动
  await app.ActiveDocument.ActiveWindow.Selection.MoveUp()
}

TypeBackspace()

JSSDK: v1.1.10+、WebOffice v1.67.1+ 支持

删除选区位置前的字符

语法

表达式.ActiveDocument.ActiveWindow.Selection.TypeBackspace()

表达式:文档类型应用对象

示例

js
//@file=base.docx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 光标向下移动
  await app.ActiveDocument.ActiveWindow.Selection.MoveDown()

  // 删除光标前的字符
  await app.ActiveDocument.ActiveWindow.Selection.TypeBackspace()
}