内容控件

本文介绍使用文字文档时如何获取控件数量、设置控件指定属性、获取控件标题、获取控件标签等。

获取内容控件对象

获取文档中的所有内容控件对象。

  • 语法

    表达式.ActiveDocument.ContentControls

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

  • 示例

    //@file=base.docx
    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取内容控件对象
      const contentControls = await app.ActiveDocument.ContentControls;
    }

获取内容控件数量

获取文档中的内容控件数量。

  • 语法

    表达式:ActiveDocument.ContentControls.Count

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

  • 返回值

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

  • 示例

    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)

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    String

    第Index个内容控件。

  • 返回值

    返回指定的内容控件对象。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取内容控件对象
      const contentControls = await app.ActiveDocument.ContentControls;
    
      //获取第1个内容控件
      const contentControl = await contentControls.Item(1);
    }

获取和设置控件文本

通过Range.Text获取和设置内容控件的文本值。

重要

JS-SDK V1.1.15及以上版本支持此功能。

  • 语法

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

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

  • 示例

    • 获取内容控件的范围

      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);
      }
    • 获取和设置内容控件的文本值

      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 = 'Aliyun';
      }

获取控件占位符文本

重要

JS-SDK V1.1.15及以上版本支持此功能。

  • 语法

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

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

  • 示例

    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

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

  • 示例

    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 = 'Aliyun';
    
      //获取第1个内容控件的标题
      const title = await contentControl.Title;
      console.log(title);
    }

获取和设置内容控件标签

  • 语法

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

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

  • 示例

    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 = 'Aliyun';
    
      //获取第1个内容控件的标签
      const Tag = await contentControl.Tag;
      console.log(Tag);
    }

新增内容控件

重要

JS-SDK V1.1.15及以上版本支持此功能。

  • 语法

    表达式.ActiveDocument.ContentControls.Add()

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

  • 返回值

    返回新增的ContentControl对象。

  • 示例

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