公文域

本文介绍使用文字文档时如何获取指定公文域名称、批量插入公文域、应用公文域样式等。

获取公文域对象

获取文档中所有的公文域。

  • 语法

    表达式.ActiveDocument.DocumentFields

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取公文域对象
      const documentFields = await app.ActiveDocument.DocumentFields;
    }

插入公文域

在指定位置插入公文域。

  • 语法

    表达式.ActiveDocument.DocumentFields.Add()

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Name

    String

    公文域名称。

    Range

    Object

    公文域范围。

    Hidden

    Boolean

    是否隐藏。取值范围如下:

    • false(默认):显示。

    • true:隐藏。

    PrintOut

    Boolean

    是否可打印。取值范围如下:

    • true(默认):可打印。

    • false:不可打印。

    ReadOnly

    Boolean

    是否只读。取值范围如下:

    • false(默认):否。

    • true:是。

  • Range说明

    属性

    数据类型

    是否必填

    描述

    Start

    Number

    开始位置。

    End

    Number

    结束位置。

  • 返回值

    属性

    数据类型

    描述

    params1

    String

    返回值1说明。

    params2

    Number

    返回值2说明。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: false, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: true, // 是否只读,默认 false
      });
    }

批量插入公文域

在指定位置批量插入公文域。

  • 语法

    表达式.ActiveDocument.DocumentFields.AddDocumentFields()

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Name

    String

    公文域名称。

    Range

    Object

    公文域范围。

    Hidden

    Boolean

    是否隐藏。取值范围如下:

    • false(默认):显示。

    • true:隐藏。

    PrintOut

    Boolean

    是否可打印。取值范围如下:

    • true(默认):可打印。

    • false:不可打印。

    ReadOnly

    Boolean

    是否只读。取值范围如下:

    • false(默认):否。

    • true:是。

    Value

    String

    域对应的值。

  • Range说明

    属性

    数据类型

    是否必填

    描述

    Start

    Number

    开始位置。

    End

    Number

    结束位置。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 批量插入公文域
      await app.ActiveDocument.DocumentFields.AddDocumentFields([
        {
          Name: '1', // 域名称
          Range: { Start: 0, End: 10 }, // 域位置
          Value: 'WebOffice1', // 域值
        },
        {
          Name: '2', // 域名称
          Range: { Start: 12, End: 18 }, // 域位置
          Value: 'WebOffice2', // 域值
        },
      ]);
    }

获取公文域总个数

  • 语法

    表达式.ActiveDocument.DocumentFields.Count

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

  • 返回值

    返回Number表示公文域的个数。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 公文域的个数
      const count = await app.ActiveDocument.DocumentFields.Count;
      console.log(count);
    }

获取公文域名称

获取所有公文域名称。

  • 语法

    表达式.ActiveDocument.DocumentFields.GetAllNames()

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

  • 返回值

    返回Array表示所有公文域的名称。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 批量插入公文域
      await app.ActiveDocument.DocumentFields.AddDocumentFields([
        {
          Name: '1', // 域名称
          Range: { Start: 0, End: 10 }, // 域位置
          Value: 'WebOffice1', // 域值
        },
        {
          Name: '2', // 域名称
          Range: { Start: 12, End: 18 }, // 域位置
          Value: 'WebOffice2', // 域值
        },
      ]);
    
      // 获取所有公文域的名字
      const names = await app.ActiveDocument.DocumentFields.GetAllNames();
      console.log(names); // ['1', '2']
    }

判断公文域是否存在

判断是否存在某个公文域。

  • 语法

    表达式.ActiveDocument.DocumentFields.Exists(Name)

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Name

    String

    公文域名称。

  • 返回值

    返回Boolean表示是否有某公文域。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 批量插入公文域
      await app.ActiveDocument.DocumentFields.AddDocumentFields([
        {
          Name: '1', // 域名称
          Range: { Start: 0, End: 10 }, // 域位置
          Value: 'WebOffice1', // 域值
        },
        {
          Name: '2', // 域名称
          Range: { Start: 12, End: 18 }, // 域位置
          Value: 'WebOffice2', // 域值
        },
      ]);
    
      // 判断是否有某公文域
      const hasOne = await app.ActiveDocument.DocumentFields.Exists('1');
      console.log(hasOne); // true
    }

单个公文域

获取单个公文域

获取公文域集合中的单个公文域。

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Number

    公文域索引。

    Name

    String

    公文域名称。

  • 返回值

    返回DocumentField表示单个公文域。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: false, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: true, // 是否只读,默认 false
      });
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
      console.log(documentField);
    }

删除指定公文域

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name }).Delete()

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

    说明

    如需批量删除公文域,您可以通过循环实现该功能。

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Number

    公文域索引。

    Name

    String

    公文域名称。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: false, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: true, // 是否只读,默认 false
      });
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
    
      // 删除公文域
      await documentField.Delete();
    }

跳转到公文域开始位置

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name }).GotoBegin()

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Number

    公文域索引。

    Name

    String

    公文域名称。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: false, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: true, // 是否只读,默认 false
      });
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
    
      // 跳转到公文域的开始位置
      await documentField.GotoBegin();
    }

跳转到公文域结束位置

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name }).GotoEnd()

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Number

    公文域索引。

    Name

    String

    公文域名称。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: false, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: true, // 是否只读,默认 false
      });
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
    
      // 跳转到公文域的结束位置
      await documentField.GotoEnd();
    }

查看公文域是否隐藏

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name }).Hidden

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Number

    公文域索引。

    Name

    String

    公文域名称。

  • 返回值

    返回Boolean表示该公文域是否隐藏。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: true, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: true, // 是否只读,默认 false
      });
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
    
      // 公文域是否隐藏
      const isHidden = await documentField.Hidden;
      console.log(isHidden);
    }

查看公文域是否可打印

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name }).PrintOut

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Number

    公文域索引。

    Name

    String

    公文域名称。

  • 返回值

    返回Boolean表示该公文域是否可打印。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: false, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: true, // 是否只读,默认 false
      });
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
    
      // 公文域是否可打印
      const isPrintOut = await documentField.PrintOut;
      console.log(isPrintOut);
    }

查看公文域是否只读

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name }).ReadOnly

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Number

    公文域索引。

    Name

    String

    公文域名称。

  • 返回值

    返回Boolean表示该公文域是否只读。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: true, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: true, // 是否只读,默认 false
      });
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
    
      // 公文域是否只读
      const isReadOnly = await documentField.ReadOnly;
      console.log(isReadOnly);
    }

查看公文域范围

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name }).Range

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Number

    公文域索引。

    Name

    String

    公文域范围。

  • 返回值

    返回Range对象表示该公文域的范围。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: false, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: true, // 是否只读,默认 false
      });
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
    
      // 公文域范围
      const range = await documentField.Range;
      console.log(range);
    }

查看公文域名称

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name }).Name

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Number

    公文域索引。

    Name

    String

    公文域名称。

  • 返回值

    返回String表示该公文域的名称。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: true, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: true, // 是否只读,默认 false
      });
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
      console.log(documentField);
    
      // 公文域名称
      const name = await documentField.Name;
      console.log(name);
    }

查看公文域

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name }).Value

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

  • 返回值

    返回String表示对应公文域的值。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: false, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: false, // 是否只读,默认 false
      });
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
    
      // 公文域的值
      const value = await documentField.Value;
      console.log(value);
    
      // 设置公文域的值
      documentField.Value = 'WebOffice';
    }

样式

查看公文域样式

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name }).Style

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Number

    公文域索引。

    Name

    String

    公文域样式。

  • 返回值

    返回Style对象表示该公文域的样式。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 插入公文域
      await app.ActiveDocument.DocumentFields.Add({
        Name: '1',
        Range: { Start: 12, End: 20 },
        Hidden: false, // 是否隐藏,默认 false
        PrintOut: true, // 是否可打印,默认 true
        ReadOnly: true, // 是否只读,默认 false
      });
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
    
      // 公文域样式
      const style = await documentField.Style;
      console.log(style);
    }

应用公文域样式

将某个公文域样式应用到另一个公文域。

  • 语法

    表达式.ActiveDocument.DocumentFields.Item({ Index, Name }).Style.ApplyTo(Name)

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Name

    String

    公文域名称。

  • 返回值

    返回Array表示所有公文域的名称。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 批量插入公文域
      await app.ActiveDocument.DocumentFields.AddDocumentFields([
        {
          Name: '1', // 域名称
          Range: { Start: 0, End: 10 }, // 域位置
          Value: 'WebOffice1', // 域值
        },
        {
          Name: '2', // 域名称
          Range: { Start: 12, End: 18 }, // 域位置
          Value: 'WebOffice2', // 域值
        },
      ]);
    
      // 公文域集合的单个公文域
      const documentField = await app.ActiveDocument.DocumentFields.Item({ Name: '1' });
    
      // 应用公文域样式
      const style = await documentField.Style.ApplyTo('2');
      console.log(style);
    }

批量替换公文域内容

  • 语法

    表达式.ActiveDocument.DocumentFields.SetDocumentFieldsValues({Value, Data})

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

  • 参数

    属性

    数据类型

    是否必填

    说明

    Value

    String

    批量替换内容

    Data

    Array.<Object>

    公文域的Index 或者 Name

  • Data数据说明

    属性

    数据类型

    是否必填

    说明

    Index

    Number

    Index或Name,二选一

    序列

    Name

    String

    Index或Name,二选一

    名称

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
       const dfs = [
            {
                Name: '2',
                Range: { Start: 30, End: 31 },
                Value: '2',
            },
            {
                Name: '3',
                Range: { Start: 33, End: 34 },
                Value: '3',
            },
            {
                Name: '4',
                Range: { Start: 35, End: 36 },
                Value: '4',
            }];
        await app.ActiveDocument.DocumentFields.AddDocumentFields(dfs);
        await app.ActiveDocument.DocumentFields.SetDocumentFieldsValues({ Value: "公文域批量替换", Arrays: [{Name: '2'}, {Name: '3'}, {Name: '4'}] });
    
    }