文本

本文介绍使用文字文档时如何修改指定文本、设置选定文字的字体大小、在选定位置插入新段落等。

获取和设置文本

获取指定区域内具体的文本内容信息。

  • 语法

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

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

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

  • 示例

    • 示例1

      //@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

      //@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';
      }

修改文本

根据传入数组全文匹配并替换文本。

  • 语法

    表达式.ActiveDocument.ReplaceText(Array.<Object>)

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

  • 参数:

    • 传入一个数组,表示需要替换的文本列表。

      属性

      数据类型

      是否必填

      描述

      list

      Array.<Object>

      要替换的文本列表。

    • list说明

      属性

      数据类型

      是否必填

      描述

      key

      String

      被替换的文本。

      value

      String

      替换的文本。

      options

      Object

      替换配置。

    • options说明

      属性

      数据类型

      是否必填

      描述

      isWildcardMatched

      Boolean

      使用通配符。支持星号(*)和问号(?)两种通配符。

      • 星号(*):代表任意字符串。

      • 问号(?):代表任意单个字符,且此字符必须存在。

      isCaseSensitive

      Boolean

      区分大小写。

      isWholeWordMatched

      Boolean

      全字匹配。

      isWidthIgnored

      Boolean

      忽略全/半角。

  • 返回值

    返回Boolean值,为true表示替换成功,为false表示替换失败。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      const isSuccess = await app.ActiveDocument.ReplaceText([
        {
          key: 'WebOffice',
          value: 'js-sdk',
        },
      ]);
      console.log(isSuccess); //true
    }

插入文本

在选区后面插入文本。

  • 语法

    表达式.ActiveDocument.ActiveWindow.Selection.InsertAfter(Text)

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Text

    String

    需要插入的文本。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //在选区后插入文本
      await app.ActiveDocument.ActiveWindow.Selection.InsertAfter('Text');
    }

插入分隔符

在选区后面插入分隔符。

  • 语法

    表达式.ActiveDocument.ActiveWindow.Selection.InsertBreak()

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //在选区位置插入分隔符
      await app.ActiveDocument.ActiveWindow.Selection.InsertBreak();
    }

删除字符

删除选区位置前的字符。

  • 语法

    表达式.ActiveDocument.ActiveWindow.Selection.TypeBackspace()

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //光标向下移动
      await app.ActiveDocument.ActiveWindow.Selection.MoveDown();
    
      //删除光标前的字符
      await app.ActiveDocument.ActiveWindow.Selection.TypeBackspace();
    }

获取开始位置

获取区域开始位置。

  • 语法

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

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

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

  • 示例

    • 示例1

      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

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

获取结束位置

获取区域结束位置。

  • 语法

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

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

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

  • 示例

    • 示例1

      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

      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对象可以控制选中内容的字体,例如设置字体类型、字体大小等内容。

  • 语法

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

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取字体对象
      const font = await app.ActiveDocument.Range(0, 20).Font;
    }

设置字体类型

设置选定文字的字体类型。

  • 语法

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

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取字体对象
      const font = await app.ActiveDocument.Range(0, 20).Font;
      
      //设置选定文字的字体类型
      font.Name = '宋体';
    }

设置字体大小

设置选定文字的字体大小。

  • 语法

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

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取字体对象
      const font = await app.ActiveDocument.Range(0, 20).Font;
      
      //设置选定文字的字体大小
      font.Size = 30;
    }

设置字体颜色

设置选定文字的字体颜色。有以下两种方式:

  • 方法一:

    • 语法

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

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

    • 示例

      async function example() {
        await instance.ready();
      
        const app = instance.Application;
      
        //获取字体对象
        const font = await app.ActiveDocument.Range(0, 20).Font;
        
        //设置选定文字的字体颜色
        font.Color = '#228B22';
      }
  • 方法二:

    • 语法

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

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

    • 参数

      属性

      数据类型

      是否必填

      描述

      WdColorIndex

      Enum

      设置字体颜色。Enum.WdColorIndex取值范围如下:

      • -1或wdByAuthor:由文档作者定义的颜色。

      • 0或wdAutor(默认):自动配色,通常为黑色。

      • 1或wdBlackr:黑色。

      • 2或wdBluer:蓝色。

      • 3或wdTurquoiser:青绿色。

      • 4或wdBrightGreen:鲜绿色。

      • 5或wdPink:粉红色。

      • 6或wdRed:红色。

      • 7或wdYellow:黄色。

      • 8或wdWhite:白色。

      • 9或wdDarkBlue:深蓝色。

      • 10或wdTeal:青色。

      • 11或wdGreen:绿色。

      • 12或wdViolet:紫色。

      • 13或wdDarkRed:深红色。

      • 14或wdDarkYellow:深黄色。

      • 15或wdGray50:50%灰色底纹。

      • 16或wdGray25:25%灰色底纹。

    • 示例

      async function example() {
        await instance.ready();
      
        const app = instance.Application;
      
        //获取字体对象
        const font = await app.ActiveDocument.Range(0, 20).Font;
      
        //设置选定文字的字体颜色
        await font.ColorIndex(2);
      }

设置字体高亮色

  • 语法

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

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取字体对象
      const font = await app.ActiveDocument.Range(0, 20).Font;
      
      //设置选定文字的高亮色
      font.HighLight = '#228B22';
    }

段落

获取段落对象

  • 语法

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

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取段落对象
      const paragraphFormat = await app.ActiveDocument.Range(0, 20).ParagraphFormat;
    }

插入新段落

在选区位置插入新段落。

  • 语法

    表达式.ActiveDocument.ActiveWindow.Selection.InsertParagraph()

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

  • 示例:

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //在选区位置插入新段落
      await app.ActiveDocument.ActiveWindow.Selection.InsertParagraph();
    }

缩进首行

  • 语法

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

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取段落对象
      const paragraphFormat = await app.ActiveDocument.Range(0, 20).ParagraphFormat;
     
      //首行缩进2单位
      paragraphFormat.CharacterUnitFirstLineIndent = 2;
    }

设置行距

  • 语法

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

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取段落对象
      const paragraphFormat = await app.ActiveDocument.Range(0, 20).ParagraphFormat;
    
      //设置1.5倍间距
      paragraphFormat.LineSpacingRule = 1.5;
    }