Skip to content

区域(Range)

区域对象,表示文档中的一个连续区域,每个 Range 对象由一个起始字符位置和一个终止字符位置定义

语法

表达式.ActiveDocument.Range(Start, End)

或者 表达式.ActiveDocument.ActiveWindow.Selection.Range

或者 表达式.ActiveDocument.Tables.Item(Index).Range

或者 表达式.ActiveDocument.Tables.Item(Index).Rows.Item(Index).Cells.Item(Index).Range

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

示例 1

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

  const app = instance.Application

  // 获取指定区域
  const range = await app.ActiveDocument.Range(0, 100)
}

示例 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
}

属性列表

属性说明
获取区域开始位置
获取区域结束位置
返回或设置一个 Font 对象,该对象代表指定对象的字符格式
返回或设置一个 ParagraphFormat 对象,该对象代表指定范围的段落设置
返回或设置一个 Paragraphs 对象,该对象代表指定范围的段落集合
通过 Range 选定区域,从而获取和设置到具体的文本内容信息
返回或设置指定区域的突出显示颜色,页面刷新后高亮不消失
返回或设置指定区域的突出显示颜色,页面刷新后高亮消失

方法列表

方法说明
通过 Range.Information,我们可以获取到页面相关的各种信息(目前仅支持获取总页数信息)
获取指定区域的带格式 HTML 数据
返回指定区域范围
粘贴带格式的 HTML 数据到指定区域
设置现有范围的起始字符和结束字符的位置

Start

获取区域开始位置

语法

表达式.ActiveDocument.Range(Start, End).Start

或者 表达式.ActiveDocument.Tables.Item(Index).Rows.Item(Index).Cells.Item(Index).Range.Start

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

示例 1

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

  const app = instance.Application

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

  // 获取选中文本的起点位置
  const start = await range.Start
  console.log(start)
}

示例 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 start = await range.Start
  console.log(start)
}

End

获取区域结束位置

语法

表达式.ActiveDocument.Range(Start, End).End

或者 表达式.ActiveDocument.Tables.Item(Index).Rows.Item(Index).Cells.Item(Index).Range.End

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

示例 1

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

  const app = instance.Application

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

  // 获取选中文本的终点位置
  const end = await range.End
  console.log(end)
}

示例 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 end = await range.End
  console.log(end)
}

Font

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

语法

表达式.ActiveDocument.Range(Start, End).Font

或者 表达式.ActiveDocument.Tables.Item(Index).Rows.Item(Index).Cells.Item(Index).Range.Font

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

示例 1

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

  const app = instance.Application

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

  // 获取选中文本的文本内容
  const font = await range.Font
  console.log(font)
}

示例 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
}

ParagraphFormat

返回或设置一个 ParagraphFormat 对象,该对象代表指定范围的段落设置

语法

表达式.ActiveDocument.Range(Start, End).ParagraphFormat

或者 表达式.ActiveDocument.Tables.Item(Index).Rows.Item(Index).Cells.Item(Index).Range.ParagraphFormat

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

示例 1

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

  const app = instance.Application

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

  // 获取选中段落
  const info = await range.ParagraphFormat
}

示例 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 paragraphFormat = await range.ParagraphFormat
}

Paragraphs

返回或设置一个 Paragraphs 对象,该对象代表指定范围的段落集合

语法

表达式.ActiveDocument.Range(Start, End).Paragraphs

或者 表达式.ActiveDocument.Tables.Item(Index).Rows.Item(Index).Cells.Item(Index).Range.Paragraphs

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

示例 1

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

  const app = instance.Application

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

  // 获取选中段落
  const info = await range.Paragraphs
}

示例 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 paragraphFormat = await range.Paragraphs
}

Text

获取文本需要 JSSDK: v1.1.10+ 支持

设置文本需要 JSSDK: v1.1.11+ 支持

通过 Range 选定区域,从而获取和设置到具体的文本内容信息

语法

表达式.ActiveDocument.Range(Start, End).Text

或者 表达式.ActiveDocument.Tables.Item(Index).Rows.Item(Index).Cells.Item(Index).Range.Text

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

示例 1

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

  const app = instance.Application

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

  // 获取选中文本
  const text = await range.Text
  console.log(text)

  // 设置文本
  range.Text = 'WebOffice'
}

示例 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 text = await range.Text
  console.log(text)

  // 设置文本
  range.Text = 'WebOffice'
}

HighlightColorIndex

返回或设置指定区域的突出显示颜色,页面刷新后高亮不消失

语法

表达式.ActiveDocument.ActiveWindow.Selection.Range.HighlightColorIndex = WdColorIndex

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

参数

属性数据类型默认值必填说明
WdColorIndex
Enum
用于确定指定行的高度的规则,可参照 Enum.WdColorIndex

示例

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

  const app = instance.Application

  // 返回或设置指定区域的突出显示颜色,页面刷新后高亮不消失
  app.ActiveDocument.ActiveWindow.Selection.Range.HighlightColorIndex = 7
}

HighlightColorIndexTemp

返回或设置指定区域的突出显示颜色,页面刷新后高亮消失

语法

表达式.ActiveDocument.ActiveWindow.Selection.Range.HighlightColorIndexTemp = WdColorIndex

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

参数

属性数据类型默认值必填说明
WdColorIndex
Enum
用于确定指定行的高度的规则,可参照 Enum.WdColorIndex

示例

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

  const app = instance.Application

  // 返回或设置指定区域的突出显示颜色,页面刷新后高亮消失
  app.ActiveDocument.ActiveWindow.Selection.Range.HighlightColorIndexTemp = 7
}

Information()

通过 Range.Information,我们可以获取到页面相关的各种信息(目前仅支持获取总页数信息)

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

语法

表达式.ActiveDocument.Range.Information(WdInformation)

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

参数

我们需要通过 app.Enum.WdInformation 拿到所选内容或区域的信息的类型。

属性数据类型默认值必填说明
WdInformation
Enum
4
获取页面信息,目前只开放 Enum.WdInformation.wdNumberOfPagesInDocument(即 4)来获取总页数信息。详细可参考: Enum.WdInformation

返回值

属性数据类型说明
PagesCount
Number
当前已经排版的页码
End
Boolean
是否已排版结束

示例

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

  const app = instance.Application

  // 获取总页数
  const totalPages = await app.ActiveDocument.Range.Information(
    app.Enum.WdInformation.wdNumberOfPagesInDocument
  )
  console.log(totalPages)
}

GetHtmlData()

获取指定区域的带格式 HTML 数据

语法

表达式.ActiveDocument.Range(Start, End).GetHtmlData()

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

返回值

属性数据类型说明
HTML
String
HTML 数据
Text
String
文本数据

示例

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

  const app = instance.Application

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

  // 获取指定区域的带格式 HTML 数据
  const htmlInfo = await range.GetHtmlData()
  console.log(htmlInfo)
}

Item()

返回指定区域范围

语法

表达式.ActiveDocument.Range(Start, End).Item(Start, End)

或者 表达式.ActiveDocument.Tables.Item(Index).Rows.Item(Index).Cells.Item(Index).Range.Item(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.ActiveWindow.Selection.Range(0, 100)

  // 获取指定区域对象
  const item = await range.Item(0, 50)
}

示例 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 item = await range.Item(1, 10)
}

PasteHtml()

粘贴带格式的 HTML 数据到指定区域

语法

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

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

参数

属性数据类型默认值必填说明
HTML
String
HTML 数据,可通过 ActiveDocument.Range(Start, End).GetHtmlData() 获取

示例

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

  const app = instance.Application

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

  // 获取指定区域的带格式 HTML 数据
  const htmlInfo = await range.GetHtmlData()

  // 粘贴带格式的 HTML 数据到指定区域
  await app.ActiveDocument.Range(110, 110).PasteHtml({
    HTML: htmlInfo.HTML
  })
}

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)
}