Skip to content

内容控件操作相关 API

获取内容控件对象

ActiveDocument.ContentControls

文档中的所有内容控件

语法

表达式.ActiveDocument.ContentControls

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

示例

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

  const app = instance.Application

  // 获取内容控件对象
  const contentControls = await app.ActiveDocument.ContentControls
}

控件数量

ActiveDocument.ContentControls.Count

获取文档内容控件的数量

语法

表达式:ActiveDocument.ContentControls.Count

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

返回值

返回 Number 代表文档内容控件的数量。

示例

//@file=base.docx
// 获取文档内容控件的数量
async function example() {
  await instance.ready()

  const app = instance.Application

  // 内容控件对象
  const contentControls = await app.ActiveDocument.ContentControls

  // 内容控件数量
  const count = await contentControls.Count
  console.log(count)
}

获取单个控件对象

ActiveDocument.ContentControls.Item(Index)

单个内容控件对象

语法

表达式.ActiveDocument.ContentControls.Item(Index)

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

参数

属性数据类型默认值必填说明
Index
String
第 Index 个内容控件

返回值

返回代表查询的那个内容控件。

示例

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

  const app = instance.Application

  // 内容控件对象
  const contentControls = await app.ActiveDocument.ContentControls

  // 获取第 1 个内容控件
  const contentControl = await contentControls.Item(1)
}

获取和设置单个内容控件文本

ActiveDocument.ContentControls.Item(Index).Range

内容控件的范围

JSSDK: v1.1.12+、WebOffice v3.1.1+ 支持

可以通过 Range.Text,来获取和设置内容控件的文本值

语法

表达式.ActiveDocument.ContentControls.Item(Index).Range

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

示例 1:获取内容控件的范围

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

  const app = instance.Application

  // 内容控件对象
  const contentControls = await app.ActiveDocument.ContentControls

  // 获取第 1 个内容控件
  const contentControl = await contentControls.Item(1)

  // 获取第 1 个内容控件的范围
  const range = await contentControl.Range
  console.log(range)
}

示例 2:获取和设置内容控件的文本值

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

  const app = instance.Application

  // 内容控件对象
  const contentControls = await app.ActiveDocument.ContentControls

  // 获取第 1 个内容控件
  const contentControl = await contentControls.Item(1)

  // 获取第 1 个内容控件的范围
  const range = await contentControl.Range

  // 获取第 1 个内容控件的文本
  const text = range.Text
  console.log(text)

  // 设置第 1 个内容控件的文本
  range.Text = 'WebOffice'
}

控件占位符文本

ActiveDocument.ContentControls.Item(Index).PlaceholderText

获取控件占位符文本

语法

表达式.ActiveDocument.ContentControls.Item(Index).PlaceholderText

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

示例

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

  const app = instance.Application

  // 内容控件对象
  const contentControls = await app.ActiveDocument.ContentControls

  // 获取第 1 个内容控件
  const contentControl = await contentControls.Item(1)

  // 获取第 1 个控件占位符文本
  const placeholderText = await contentControl.PlaceholderText
  console.log(placeholderText)
}

控件标题

ActiveDocument.ContentControls.Item(Index).Title

内容控件的标题

语法

表达式.ActiveDocument.ContentControls.Item(Index).Title

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

示例

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

  const app = instance.Application

  // 内容控件对象
  const contentControls = await app.ActiveDocument.ContentControls

  // 获取第 1 个内容控件
  const contentControl = await contentControls.Item(1)

  // 设置第 1 个内容控件的标题
  contentControl.Title = 'WebOffice'

  // 获取第 1 个内容控件的标题
  const title = await contentControl.Title
  console.log(title)
}

控件标签

ActiveDocument.ContentControls.Item(Index).Tag

内容控件的标签

语法

表达式.ActiveDocument.ContentControls.Item(Index).Tag

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

示例

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

  const app = instance.Application

  // 内容控件对象
  const contentControls = await app.ActiveDocument.ContentControls

  // 获取第 1 个内容控件
  const contentControl = await contentControls.Item(1)

  // 设置第 1 个内容控件的标签
  contentControl.Tag = 'WebOffice'

  // 获取第 1 个内容控件的标签
  const Tag = await contentControl.Tag
  console.log(Tag)
}

新增内容控件

ActiveDocument.ContentControls.Add()

在光标处插入内容控件

JSSDK: v1.1.11+、WebOffice v3.1.1+ 支持

语法

表达式.ActiveDocument.ContentControls.Add()

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

返回值

返回新增的 ContentControl 对象

示例

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

  const app = instance.Application

  // 移动光标过去指定位置(前面)
  const info = await app.ActiveDocument.Find.Execute('区别')
  const pos = (info[0] && info[0].pos) || 0
  await app.ActiveDocument.Range.SetRange(pos, pos)

  // 内容控件对象
  const contentControls = await app.ActiveDocument.ContentControls

  // 在光标处插入内容控件
  await contentControls.Add()
}