主题
文字组件目录操作相关 API
目录对象
ActiveDocument.TablesOfContents
TablesOfContents 表示文档中的所有目录。
JSSDK: v1.1.12+、WebOffice v3.1.1+ 支持
需要注意的是,TableOfContents 和 TablesOfContents 是两个不同的对象,前者代表单个目录,后者代表目录集合(一个文档可以插入多个目录)。
语法
表达式.ActiveDocument.TablesOfContents
表达式:文档类型应用对象
示例
//@file=base.docx
async function example() {
  await instance.ready()
  const app = instance.Application
  const tablesOfContents = await app.ActiveDocument.TablesOfContents
}
添加目录
ActiveDocument.TablesOfContents.Add()
插入目录
JSSDK: v1.1.12+、WebOffice v3.1.1+ 支持
语法
表达式.ActiveDocument.TablesOfContents.Add({ Range })
表达式:文档类型应用对象。
参数
| 属性 | 类型 | 默认值 | 必填 | 说明 | 
|---|---|---|---|---|
| Range | Range {} | 是 | 目录插入的区域 | 
示例
//@file=base.docx
async function example() {
  await instance.ready()
  const app = instance.Application
  // 区域对象
  const range = await app.ActiveDocument.Range(0, 0)
  // 插入目录
  await app.ActiveDocument.TablesOfContents.Add(range)
}
获取目录数量
ActiveDocument.TablesOfContents.Count
获取文档中目录的数量
JSSDK: v1.1.12+、WebOffice v3.1.1+ 支持
语法
表达式.ActiveDocument.TablesOfContents.Count
表达式:文档类型应用对象
示例
//@file=base.docx
async function example() {
  await instance.ready()
  const app = instance.Application
  // 区域对象
  const range = await app.ActiveDocument.Range(0, 0)
  // 插入目录
  await app.ActiveDocument.TablesOfContents.Add(range)
  // 获取文档中目录的数量
  await app.ActiveDocument.TablesOfContents.Count
}
单个目录对象
ActiveDocument.TablesOfContents.Item(Index)
TableOfContents 表示文档中的单个目录
JSSDK: v1.1.12+、WebOffice v3.1.1+ 支持
需要注意的是,TableOfContents 和 TablesOfContents 是两个不同的对象,前者代表单个目录,后者代表目录集合(一个文档可以插入多个目录)。
语法
表达式.ActiveDocument.TablesOfContents.Item(Index)
表达式:文档类型应用对象
参数
| 属性 | 类型 | 默认值 | 必填 | 说明 | 
|---|---|---|---|---|
| Index | number | 是 | 目录索引 | 
示例
//@file=base.docx
async function example() {
  await instance.ready()
  const app = instance.Application
  // 区域对象
  const range = await app.ActiveDocument.Range(0, 0)
  // 插入目录
  await app.ActiveDocument.TablesOfContents.Add(range)
  // 获取单个目录对象
  await app.ActiveDocument.TablesOfContents.Item(1)
}
更新整个目录
ActiveDocument.TablesOfContents.Item(Index).Update()
更新整个目录
JSSDK: v1.1.12+、WebOffice v3.1.1+ 支持
语法
表达式.ActiveDocument.TablesOfContents.Item(Index).Update()
表达式:文档类型应用对象
示例
//@file=base.docx
async function example() {
  await instance.ready()
  const app = instance.Application
  // 区域对象
  const range = await app.ActiveDocument.Range(0, 0)
  // 插入目录
  await app.ActiveDocument.TablesOfContents.Add(range)
  // 更新整个目录
  await app.ActiveDocument.TablesOfContents.Item(1).Update()
}
仅更新目录页码
ActiveDocument.TablesOfContents.Item(Index).UpdatePageNumbers()
仅更新目录页码
JSSDK: v1.1.12+、WebOffice v3.1.1+ 支持
语法
表达式.ActiveDocument.TablesOfContents.Item(Index).UpdatePageNumbers()
表达式:文档类型应用对象
示例
//@file=base.docx
async function example() {
  await instance.ready()
  const app = instance.Application
  // 区域对象
  const range = await app.ActiveDocument.Range(0, 0)
  // 插入目录
  await app.ActiveDocument.TablesOfContents.Add(range)
  // 仅更新目录页码
  await app.ActiveDocument.TablesOfContents.Item(1).UpdatePageNumbers()
}
设置目录样式
ActiveDocument.TablesOfContents.Item(Index).SetStyles()
设置目录样式
JSSDK: v1.1.12+、WebOffice v3.1.1+ 支持
语法
表达式.ActiveDocument.TablesOfContents.Item(Index).SetStyles(LowerHeadingLevel, IncludePageNumbers, TabLeader)
表达式:文档类型应用对象
参数
| 属性 | 类型 | 默认值 | 必填 | 说明 | 
|---|---|---|---|---|
| LowerHeadingLevel | number | 可选 | 显示级别 (1-9) | |
| IncludePageNumbers | boolean | 可选 | 是否显示页码 | |
| TabLeader | number | 可选 | 制表符前导符类型 (0-4),可以是 WdTabLeader 常量之一 | 
示例
//@file=base.docx
async function example() {
  await instance.ready()
  const app = instance.Application
  // 区域对象
  const range = await app.ActiveDocument.Range(0, 0)
  // 插入目录
  await app.ActiveDocument.TablesOfContents.Add(range)
  // 设置目录样式
  const tabLeader = app.Enum.WdTabLeader.wdTabLeaderDashes
  await app.ActiveDocument.TablesOfContents.Item(1).SetStyles(
    9,
    true,
    tabLeader
  )
}
删除目录
ActiveDocument.TablesOfContents.Item(Index).Delete()
删除目录
JSSDK: v1.1.12+、WebOffice v3.1.1+ 支持
语法
表达式.ActiveDocument.TablesOfContents.Item(Index).Delete()
表达式:文档类型应用对象
示例
//@file=base.docx
async function example() {
  await instance.ready()
  const app = instance.Application
  // 区域对象
  const range = await app.ActiveDocument.Range(0, 0)
  // 插入目录
  await app.ActiveDocument.TablesOfContents.Add(range)
  // 删除目录
  await app.ActiveDocument.TablesOfContents.Item(1).Delete()
}
 金山文档开放平台
金山文档开放平台