文档

Range

更新时间:

本文介绍与表格文档Range相关的API。

Range

获取一个单元格、一行、一列、一个包含单个或若干连续单元格区域的选定单元格范围。

  • 语法

    表达式.Range

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    }

方法

Range.Item()

通过Item()方法,您可以获取指定区域中的指定位置。

  • 语法

    表达式.Range.Item({ RowIndex, ColumnIndex })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    RowIndex

    Number

    子范围的索引或相对行号。

    • 如果提供了参数ColumnIndex,则此参数为指定单元格的相对行号。

    • 如果未提供参数ColumnIndex,则此参数为子范围的索引。

    ColumnIndex

    Number

    指定单元格的相对列号。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:D2');
    
      //获取指定单元格B2
      const item1 = await range.Item(2, 2);
      await item1.Select();
    }

Range.Activate()

通过Activate()方法,您可以激活指定区域。

  • 语法

    表达式.Range.Activate()

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //激活区域A1
      range.Activate();
    }

Range.AddComment()

通过AddComment()方法,您可以给指定区域添加评论。

  • 语法表达式.Range.AddComment({ Text })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Text

    String

    评论文本。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //给区域A1添加评论
      range.AddComment('Aliyun');
    }

Range.Address()

通过Address()方法,您可以获取表示使用宏语言的区域引用的String值。

  • 语法

    表达式.Range.Address({ RowAbsolute, ColumnAbsolute, ReferenceStyle, External, RelativeTo })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    RowAbsolute

    Boolean

    是否以绝对引用的形式返回引用的行部分。取值范围如下:

    • true(默认):是。

    • false:否。

    ColumnAbsolute

    Boolean

    是否以绝对引用的形式返回引用的列部分。取值范围如下:

    • true(默认):是。

    • false:否。

    ReferenceStyle

    Enum

    引用样式,默认值为xlA1。更多信息,请参见XlReferenceStyle

    External

    Boolean

    返回外部引用或本地引用。取值范围如下:

    • false(默认):返回本地引用。

    • true:返回外部引用。

    RelativeTo

    Range

    定义起始点的Range对象。

    如果RowAbsoluteColumnAbsolute取值均为false,且ReferenceStyle取值为xlR1C1,则必须包含一个起始点。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取使用宏语言的区域引用的String值
      const address1 = await range.Address();
      console.log('address1:', address1);
    
      const address2 = await range.Address(false, false);
      console.log('address2:', address2);
    
      const address3 = await range.Address(true, true, -4150);
      console.log('address3:', address3);
    }

Range.AutoFill()

通过AutoFill()方法,您可以对指定区域中的单元格执行自动填充。

  • 语法

    表达式.Range.AutoFill({ Destination, Type })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Destination

    Range

    目标区域。目标区域必须包含源区域。

    Type

    Enum

    填充类型。默认值为Enum.XlAutoFillType.xlFillDefault。更多信息,请参见XlAutoFillType

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:A2');
    
      //选择要填充的单元格
      const fillRange = await app.Range('A1:A20');
    
      //对选中的单元格执行自动填充
      await range.AutoFill(fillRange);
    }

Range.ClearComments()

通过ClearComments()方法,您可以清除指定区域的评论。

  • 语法

    表达式.Range.ClearComments()

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:A2');
    
      //清除该区域的评论
      await range.ClearComments();
    }

Range.ClearContents()

通过ClearContents()方法,您可以清除指定区域的内容。

  • 语法

    表达式.Range.ClearContents()

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:A2');
    
      //清除该区域的内容
      await range.ClearContents();
    }

Range.Contain()

通过Contain()方法,您可以判断区域对象是否重叠。

  • 语法

    表达式.Range.Contain({ Range })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Range

    Range

    另一块区域对象。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:D2');
    
      //获取另一区域对象
      const newRange = await app.Range('A1:B4');
    
      //判断两区域是否重叠
      const contain = await range.Contain(newRange);
      console.log(contain);
    }

Range.Merge()

通过Merge()方法,您可以合并指定区域中的单元格。

  • 语法

    表达式.Range.Merge({ Across })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Across

    Boolean

    是否将指定区域中每一行的单元格合并为一个单元格。取值范围如下:

    • false(默认):否。

    • true:是。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:D2');
    
      //合并单元格
      await range.Merge();
    }

Range.UnMerge()

通过UnMerge()方法,您可以取消合并指定区域中的单元格。

  • 语法

    表达式.Range.UnMerge({ CancelCenter })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    CancelCenter

    Boolean

    是否将指定区域中的单元格合并居中。取值范围如下:

    • false(默认):否。

    • true:是。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:D2');
    
      setTimeout(async () => {
        //取消合并单元格
        await range.UnMerge();
      }, 3000);
    }

Range.Offset()

通过Offset()方法,您可以对指定区域的内容进行迁移操作。

  • 语法

    表达式.Range.Offset({ RowOffset, ColumnOffset })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    RowOffset

    Number

    区域迁移的行数。取值范围下:

    • 正整数:向下迁移。

    • 负整数:向上迁移。

    • 0(默认):不迁移。

    ColumnOffset

    Number

    区域迁移的列数。取值范围如下:

    • 正整数:向右迁移。

    • 负整数:向左迁移。

    • 0(默认):不迁移。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:D2');
      await range.Select();
    
      //对该区域内容进行迁移操作
      const newRange = await range.Offset(2, 2);
      await newRange.Select();
    }

Range.Select()

通过Select()方法,您可以选中指定区域中的活动单元格。

  • 语法

    表达式.Range.Select()

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    ActiveCell

    Object

    选中区域内的活动单元格ActiveCell,格式为{row: number, col: number}。参数说明如下:

    • row:选中区域内活动单元格的行数。

    • col:选中区域内活动单元格的列数。

    说明

    如果超出了选中区域的范围则默认选中区域的第一个单元格。

    Twinkle

    Boolean

    是否设置显示闪烁动画。取值范围如下:

    • false(默认):否。

    • true:是。

  • 示例

    • 示例1

      async function example() {
        await instance.ready();
      
        const app = instance.Application;
        
        //获取区域对象
        const range = await app.Range('A1');
      
        //选中区域A1
        range.Select();
      
        //5000 ms后选择区域B1:D2
        setTimeout(async () => {
          const newRange = await app.Range('B1:D2');
          newRange.Select();
        }, 5000);
      }
    • 示例2

      async function example() {
        await instance.ready();
      
        const app = instance.Application;
        
        //获取区域对象
        const range = await app.Range('A1');
      
        //选中区域A1并且设置闪烁动画
        range.Select(null, true);
      
        //5000 ms后选择区域B1:D2并设置选中区域第二行第二列为活动单元格
        setTimeout(async () => {
          const newRange = await app.Range('B1:D2');
          newRange.Select({row: 2, col: 2}, true);
        }, 5000);
      }

Range.ToImageDataURL()

通过ToImageDataURL()方法,您可以将指定区域导出为对应的图片。

  • 语法

    表达式.Range.ToImageDataURL()

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:D2');
    
      //将该区域导出为对应的图片
      const img = await range.ToImageDataURL();
      console.log(img);
    }

Range.Insert()

通过Insert()方法,您可以在指定区域新增行、列或者单元格。

  • 语法

    表达式.Range.Insert()

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

  • 示例

    • 新增行

      async function example() {
        await instance.ready();
      
        const app = instance.Application;
        
        //获取区域对象
        const range = await app.Range('B5:D10');
      
        //选择该区域的所有行并在该范围上方新增行
        await range.EntireRow.Insert();
      }
    • 新增列

      async function example() {
        await instance.ready();
      
        const app = instance.Application;
        
        //获取区域对象
        const range = await app.Range('B5:D10');
      
        //选择该区域的所有列并在该范围左侧新增列
        await range.EntireColumn.Insert();
      }

Range.PasteSpecial()

通过PasteSpecial()方法,您可以粘贴已复制到指定范围的Range对象。

重要

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

  • 语法

    表达式.Range.PasteSpecial()

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Paste

    Enum.XlPasteType

    粘贴类型。更多信息,请参见XlPasteType

    Operation

    Enum.XlPasteSpecialOperation

    粘贴操作。更多信息,请参见XlPasteSpecialOperation

    SkipBlanks

    Boolean

    是否将剪贴板中的空白单元格粘贴到目标区域中。取值范围如下:

    • false(默认):否。

    • true:是。

    Transpose

    Boolean

    是否在粘贴时转置行和列。取值范围如下:

    • false(默认):否。

    • true:是。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取选取对象
      const range = await app.Selection
    
      //粘贴已复制到指定范围的Range对象
      await range.PasteSpecial();
    }

Range.Find()

通过Find()方法,您可以在区域中查找特定信息,返回一个Range对象(可使用Range相关的属性、方法)。

  • 语法

    表达式.Range.Find({ What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    What

    String

    要搜索的数据。

    After

    Range

    表示搜索过程将从其之后开始进行的单元格,如果不指定该参数,搜索将从区域的左上角的单元格之后开始。

    LookIn

    Enum

    查找的类型,默认值为Enum.LookIn.etSmart。更多信息,请参见LookIn

    LookAt

    Enum

    匹配全部文本或者匹配任一部分文本,默认值为Enum.LookAt.etPart。更多信息,请参见LookAt

    SearchOrder

    Enum

    查找的顺序。默认值为Enum.SearchOrder.etByRows。更多信息,请参见SearchOrder

    SearchDirection

    Enum

    查找的方向,默认值为Enum.SearchDirection.etNext。更多信息,请参见SearchDirection

    MatchCase

    Boolean

    搜索是否区分大小写。取值范围如下:

    • false(默认):否,不区分大小写。

    • true:是,区分大小写。

    MatchByte

    Boolean

    双字节字符是否只与双字节字符匹配。取值范围如下:

    • true:是,双字节字符只与双字节字符匹配。

    • false(默认):否,双字节字符可与其对等的单字节字符匹配。

    SearchFormat

    Object

    搜索的格式。

  • 示例

    //@file=base.xlsx
    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //单元格对象,包含所有单元格
      const cells = await app.Cells;
      
      //查找
      let range = await cells.Find('123');
    
      //查找下一个
      range = await cells.Find('123', range);
    
      //选中查到的单元格
      await range.Select();
    }

Range.FindAll()

通过FindAll()方法,您可以在区域中查找所有的特定信息,返回一个数组,包含所有匹配到的单元格地址。

  • 语法

    表达式.Range.FindAll({ What, LookIn, LookAt, SearchOrder, MatchCase, MatchByte, SearchRange })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    What

    String

    要搜索的数据。

    LookIn

    Enum

    查找的类型,默认值为Enum.LookIn.etSmart。更多信息,请参见LookIn

    LookAt

    Enum

    匹配全部文本或者匹配任一部分文本,默认值为Enum.LookAt.etPart。更多信息,请参见LookAt

    SearchOrder

    Enum

    查找的顺序。默认值为Enum.SearchOrder.etByRows。更多信息,请参见SearchOrder

    MatchCase

    Boolean

    搜索是否区分大小写。取值范围如下:

    • false(默认):否,不区分大小写。

    • true:是,区分大小写。

    MatchByte

    Boolean

    双字节字符是否只与双字节字符匹配。取值范围如下:

    • true:是,双字节字符只与双字节字符匹配。

    • false(默认):否,双字节字符可与其对等的单字节字符匹配。

    SearchRange

    Enum

    查找的范围,默认值为Enum.FindScope.etSheet。更多信息,请参见FindScope

  • 示例

    //@file=base.xlsx
    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //单元格对象,包含所有单元格
      const cells = await app.Cells;
      
      //查找,返回所有包含“123”的单元格地址
      let results = await cells.FindAll('123');
    
      //查到的第一个单元格对象
      const range = await app.Range(results[0]);
      
      //选中单元格
      await range.Select();
    }

Range.Copy()

通过Copy()方法,您可以将区域的内容复制到剪贴板。

重要

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

  • 语法

    表达式.Range.Copy()

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 区域对象
      const range = await app.Range('A1:D2');
    
      //将区域的内容复制到剪贴板
      await range.Copy();
      // 内容已复制到剪切板,通过 Ctrl + V 可以粘贴
    }

Range.RemoveDuplicates()

通过RemoveDuplicates()方法,您可以从值区域中删除重复的值。

重要

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

  • 语法

    表达式.Range.RemoveDuplicates({ Columns, Header })

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

  • 参数

属性

数据类型

是否必填

描述说明

Columns

Array.<Number>

包含重复信息的列的索引数组

Header

Enum

指定第一行是否包含标题信息。 xlNo 是默认值;如果您希望表格尝试确定标题,请指定 xlGuess。详细可参Enum.XlYesNoGuess

  • 示例

    async function example() {
        await instance.ready();
    
        const app = instance.Application;
    
        // 区域对象
        const range = await app.Range('A1:D2');
        
        //删除重复值
        await range.RemoveDuplicates([1,2]);
    }

属性

Range.Cells

通过Cells属性,您可以获取指定区域中的指定单元格。

  • 语法

    表达式.Range.Cells

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:B2');
    
      //获取所有单元格
      const cells = await range.Cells;
    
      //获取第一个单元格
      const cell = await cells.Item(1);
      window.cells = cells;
    
      //选中该单元格
      await cell.Select();
    }

Range.Column

通过Column属性,您可以获取指定区域中第一列的列号。

  • 语法

    表达式.Range.Column

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:B2');
    
      //获取区域中第一列的列号
      const column = await range.Column;
      console.log(column);
    }

Range.ColumnEnd

通过ColumnEnd属性,您可以获取指定区域中最后一列的列号。

  • 语法

    表达式.Range.ColumnEnd

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:B2');
    
      //获取区域中最后一列的列号
      const columnEnd = await range.ColumnEnd;
      console.log(columnEnd);
    }

Range.ColumnWidth

通过ColumnWidth属性,您可以设置指定区域的宽度。

  • 语法

    表达式.Range.ColumnWidth

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:B2');
    
      //设置区域宽度,单位为像素
      range.ColumnWidth = 30;
    }

Range.Columns

通过Columns属性,您可以获取指定区域中的指定列。

  • 语法

    表达式.Range.Columns

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:B2');
    
      //获取所有列
      const columns = await range.Columns;
    
      //获取第二列
      const column = await columns.Item(2);
    
      //选中该列
      await column.Select();
    }

Range.Count

通过Count属性,您可以获取指定区域中的单元格数量。

  • 语法

    表达式.Range.Count

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:B2');
    
      //获取该区域中单元格的数量
      const count = await range.Count;
      console.log(count);
    }

Range.EntireColumn

通过EntireColumn属性,您可以获取包含指定区域的整列。

  • 语法

    表达式.Range.EntireColumn

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取包含该区域的整列
      const entireColumn = range.EntireColumn;
    
      //选中该列
      await entireColumn.Select();
    }

Range.EntireRow

通过EntireRow属性,您可以获取包含指定区域的整行。

  • 语法

    表达式.Range.EntireRow

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取包含该区域的整行
      const entireRow = range.EntireRow;
    
      //选中该行
      await entireRow.Select();
    }

Range.Formula

通过Formula属性,您可以以A1样式表示法表示指定区域对象的隐式交叉公式。

  • 语法

    表达式.Range.Formula

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A2');
    
      //设置公式为A2=A1+B1
      range.Formula = '=A1+B1';
    }

Range.FormulaArray

通过FormulaArray属性,您可以设置或获取指定区域的数组公式。

  • 语法

    表达式.Range.FormulaArray

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A2:B2');
    
      //设置公式为A2到B2的值为A1+B1的和
      range.FormulaArray = '=Sum(A1:B1)';
      
      //获取该公式
      const formulaArray = await range.FormulaArray;
      console.log(formulaArray);
    }

Range.Hidden

通过Hidden属性,您可以设置是否隐藏包含指定区域的整行或整列。

  • 语法

    表达式.Range.Hidden = Boolean

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

    Boolean取值为true时,表示隐藏整行或整列,取值为false时,表示显示整行或整列。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取包含该区域的整列
      const entireColumn = range.EntireColumn;
    
      //隐藏该列
      entireColumn.Hidden = true;
    }

Range.HorizontalAlignment

通过HorizontalAlignment属性,您可以设置和获取指定区域的水平对齐方式。更多信息,请参见XlHAlign

  • 语法

    表达式.Range.HorizontalAlignment

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //设置对齐方式为居中对齐
      range.HorizontalAlignment = await app.Enum.XlHAlign.xlHAlignCenter;
    
      setTimeout(async () => {
        //3000 ms后获取对齐方式
        const horizontalAlignment = await range.HorizontalAlignment;
        console.log(horizontalAlignment);
      }, 3000);
    }

Range.Left

通过Left属性,您可以获取A列的左边缘到指定区域的左边缘的距离。

  • 语法

    表达式.Range.Left

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('B2');
    
      //设置对齐方式为居中对齐
      range.HorizontalAlignment = await app.Enum.XlHAlign.xlHAlignCenter;
    
      //获取A列的左边缘到B2的左边缘的距离
      const left = await range.Left;
      console.log(left);
    }

Range.MergeArea

通过MergeArea属性,您可以获取单元格的合并区域。

  • 语法

    表达式.Range.MergeArea

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:D2');
    
      //合并单元格
      await range.Merge();
    
      setTimeout(async () => {
        //5000 ms后获取单元格的合并区域
        const mergeArea = await range.MergeArea;
        mergeArea.Select();
      }, 5000);
    }

Range.MergeCells

通过MergeCells属性,您可以查看指定区域中是否存在合并的单元格。

  • 语法

    表达式.Range.MergeCells

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:D2');
    
      //合并单元格
      await range.Merge();
    
      //查看该区域中是否存在合并的单元格
      const mergeCells = await range.MergeCells;
      console.log(mergeCells);
    }

Range.Row

通过Row属性,您可以获取指定区域中第一行的行号。

  • 语法

    表达式.Range.Row

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:B2');
    
      //获取该区域中第一行的行号
      const row = await range.Row;
      console.log(row);
    }

Range.RowEnd

通过RowEnd属性,您可以获取指定区域中最后一行的行号。

  • 语法

    表达式.Range.RowEnd

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:B2');
    
      //获取该区域中最后一行的行号
      const rowEnd = await range.RowEnd;
      console.log(rowEnd);
    }

Range.RowHeight

通过RowHeight属性,您可以设置指定区域的高度。

  • 语法

    表达式.Range.RowHeight

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:B2');
    
      //设置该区域的高度,单位为像素
      range.RowHeight = 100;
    }

Range.Rows

通过Rows属性,您可以获取指定区域中的指定行。

  • 语法

    表达式.Range.Rows

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1:B2');
    
      //获取所有行
      const rows = await range.Rows;
    
      //获取第二行
      const row = await rows.Item(2);
    
      //选中该行
      await row.Select();
    }

Range.Text

通过Text属性,您可以读取指定单元格的格式化文本,此为只读属性。

  • 语法

    表达式.Range.Text

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取区域对象
      const range = await app.Range('A1:B2');
    
      //读取单元格的格式化文本
      const text = await range.Text;
      console.log(text);
    }

Range.Top

通过Top属性,您可以获取第一行的上边缘到指定区域的上边缘之间的距离。

  • 语法

    表达式.Range.Top

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取区域对象
      const range = await app.Range('B2');
    
      //获取第一行的上边缘到指定区域的上边缘之间的距离
      const top = await range.Top;
      console.log(top);
    }

Range.VerticalAlignment

通过VerticalAlignment属性,您可以设置和获取指定区域的垂直对齐方式。更多信息,请参见XlVAlign

  • 语法

    表达式.Range.VerticalAlignment

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取区域对象
      const range = await app.Range('A1');
    
      //设置对齐方式为底部对齐
      range.VerticalAlignment = await app.Enum.XlVAlign.xlVAlignBottom;
    
      setTimeout(async () => {
        //3000 ms后获取对齐方式
        const horizontalAlignment = await range.VerticalAlignment;
        console.log(horizontalAlignment);
      }, 3000);
    }

Range.WrapText

获取或者设置区域自动换行。

  • 语法

    表达式.Range.WrapText

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

  • 示例

    //@file=base.xlsx
    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 区域对象
      const range = await app.Range('A1');
    
      // 获取区域自动换行
      const wrapText = await range.WrapText;
      console.log('区域是否自动换行:', wrapText);
    
      // 设置区域自动换行
      range.WrapText = true;
    }

Range.NumberFormat

通过NumberFormat属性,您可以获取或者设置区域的数字格式。

说明
  • 获取时,如果指定区域中的所有单元格的数字格式不一致,则此属性返回null

  • 设置时,为了让用户设置更方便,如下列举了WebOffice上常用的值,在调用API设置数字格式时,可以复制下面的值进行设置,例如设置数字格式为常规Range.NumberFormat = 'G/通用格式'

    • 常规:G/通用格式

    • 数值:0.00_);[红色](0.00)

    • 货币:¥#,##0.00_);[红色](¥#,##0.00)

    • 会计专用:_ ¥* #,##0.00_ ;_ ¥* -#,##0.00_ ;_ ¥* "-"??_ ;_ @_

    • 短日期:yyyy/m/d;@

    • 长日期:yyyy"年"m"月"d"日";@

    • 时间:h:mm:ss;@

    • 百分比:0.00%

    • 分数:# ?/?

    • 科学技术:0.00E+00

    • 文本:@

    • 千位分隔样式:_ * #,##0.00_ ;_ * -#,##0.00_ ;_ * "-"??_ ;_ @_

  • 语法

    表达式.Range.NumberFormat

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

  • 示例

    //@file=base.xlsx
    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //区域对象
      const range = await app.Range('A1');
    
      //获取区域数字格式
      const numberFormat = await range.NumberFormat;
      console.log('当前区域数字格式:', numberFormat);
    
      //设置区域数字格式为文本
      range.NumberFormat = '@';
    }

Range.Value

通过Value属性,您可以在指定区域中写入值。

  • 语法

    表达式.Range.Value

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取区域对象
      const range = await app.Range('A1');
    
      //在该区域中写入值
      range.Value = 'Aliyun';
    }

Range.IndentLevel

通过IndentLevel属性,您可以设置缩进指定区域。

  • 语法

    表达式.Range.IndentLevel

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取区域对象
      const range = await app.Range('A1');
    
      //该区域缩进10个单位
      range.IndentLevel = 10;
    }

Range.Validation

通过Validation属性,您可以获取指定区域的数据有效性规则。更多信息,请参见Validation

  • 语法

    表达式.Range.Validation

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取该区域的数据有效性规则
      range.IndentLevel = 10;
    }

Range.Areas

通过Areas属性,您可以获取多区域选择中的所有区域。

重要

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

  • 语法

    表达式.Range.Areas

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 选区对象
      const range = await app.Selection;
    
      // 获取选中的所有区域
      const areas = await range.Areas;
        
      // 选中区域的数量
      const count = await areas.Count;
      
      // 选中的第一个区域
      const area = await areas.Item(1)
    
      const address = await area.Address()
    }

Range.Hyperlinks

通过Hyperlinks属性,您可以获取区域的超链接对象。

重要

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

  • 语法

    表达式.Range.Hyperlinks

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      // 选区对象
      const range = await app.Selection;
    
      // 返回超链接对象
      const hyperlinks = await range.Hyperlinks;
      
      // 获取超链接单个对象
      const hyperlink = await hyperlinks.Item(1)
    }

Range.Value2

通过Value2属性,您可以设置单元格值。

重要

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

  • 语法

    表达式.Range.Value2

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      // 区域对象
      const range = await app.Range('A1:B2');
    
      // 写入值到单元格中
      range.Value2 = [['WebOffice', 'WebOffice2'], ['1', '2']];
    }

Borders

Range.Borders

获取指定区域中的所有边框。

  • 语法

    表达式.Range.Borders

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取所有边框
      const borders = await range.Borders;
    }

Border

Range.Borders.Item()

获取单个边框对象。

  • 语法

    表达式.Range.Borders.Item(Index)

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Enum

    指定要检索的边框。更多信息,请参见XlBordersIndex

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取所有边框
      const borders = await range.Borders;
    
      //获取单个边框对象
      const border = await borders.Item(1);
    }

属性

Range.Borders.Item(Index).Color

通过Color属性,您可以获取指定边框的颜色。

重要

获取边框颜色时,需要指定具体的边框,即枚举值Enum.XlBordersIndex不能是xlOutside和xlInside。

  • 语法

    表达式.Range.Borders.Item(Index).Color

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取所有边框
      const borders = await range.Borders;
    
      //获取单个边框对象
      const border = await borders.Item(app.Enum.XlBordersIndex.xlEdgeLeft);
    
      //获取边框颜色
      const color = await border.Color;
      console.log(color);
    }
    

Range.Borders.Item(Index).LineStyle

通过LineStyle属性,您可以设置指定边框的线条样式。更多信息,请参见XlLineStyle

  • 语法

    表达式.Range.Borders.Item(Index).LineStyle

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取所有边框
      const borders = await range.Borders;
    
      //获取单个边框对象
      const border = await borders.Item(app.Enum.XlBordersIndex.xlEdgeLeft);
    
      //设置边框的线条样式
      border.LineStyle = app.Enum.XlLineStyle.xlDash;
    }
    

Range.Borders.Item(Index).Weight

通过Weight属性,您可以设置指定边框的粗细。更多信息,请参见XlBorderWeight

  • 语法

    表达式.Range.Borders.Item(Index).Weight

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取所有边框
      const borders = await range.Borders;
    
      //获取单个边框对象
      const border = await borders.Item(app.Enum.XlBordersIndex.xlEdgeLeft);
    
      //设置边框的粗细
      border.Weight = app.Enum.XlBorderWeight.xlThick;
    }
    

Font

Range.Font

获取字体对象。

  • 语法

    表达式.Range.Font

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取字体对象
      const font = range.Font;
    }

属性

Range.Font.Size

通过Size属性,您可以设置和获取字体大小。

  • 语法

    表达式.Range.Font.Size

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取字体对象
      const font = range.Font;
    
      //设置字体大小
      font.Size = 30;
    
      //获取字体大小
      const size = await font.Size;
      console.log(size);
    }

FormatConditions

Range.FormatConditions

获取指定区域中的所有条件格式。

  • 语法

    表达式.Range.FormatConditions

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取该区域的所有条件格式
      const formatConditions = await range.FormatConditions;
    }

方法

Range.FormatConditions.Add()

通过Add()方法,您可以指定区域添加条件格式。

  • 语法

    表达式.Range.FormatConditions.Add({ Type, Operator, Formula1, Formula2 })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Type

    Enum

    指定条件格式是基于单元格值还是基于表达式。更多信息,请参见XlFormatConditionType

    Operator

    Number

    条件格式运算符。更多信息,请参见XlFormatConditionOperator

    Formula1

    Number

    与条件格式关联的值或表达式。可为常量值、字符串值、单元格引用或公式。

    Formula2

    Number

    • 当参数Operator取值为xlBetweenxlNotBetween时,该参数表示与条件格式第二部分相关联的值或表达式,可以是常量值、字符串值、单元格引用或公式。

    • 当参数Operator取值不为xlBetweenxlNotBetween时,将忽略此参数。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A4:D5');
    
      //选中该区域
      await range.Select();
    
      //设置公式
      range.Formula = 'Aliyun';
    
      //获取所有条件格式
      const formatConditions = await range.FormatConditions;
    
      //添加条件格式
      await formatConditions.Add(
        app.Enum.XlFormatConditionType.xlExpression,
        undefined,
        '=D1=1',
      );
    }

Range.FormatConditions.With()

通过With()方法,您可以编辑条件格式。

  • 语法

    表达式.Range.FormatConditions.With({ Interior, Font, Borders })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Interior

    Object

    内部属性对象。

    Font

    Object

    字体对象。

    Borders

    Object

    边框对象。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A4:D5');
    
      //选中该区域
      await range.Select();
    
      //设置公式
      range.Formula = 'Aliyun';
    
      //获取所有条件格式
      const formatConditions = await range.FormatConditions;
    
      //添加条件格式
      await formatConditions.Add(
        app.Enum.XlFormatConditionType.xlExpression,
        undefined,
        '=D1=1',
      );
    
      // 编辑条件格式
      await formatConditionsAdd.With({
        Interior: { Color: '#000000' },
        Font: { Bold: true, Color: '#FF0000', Underline: 2, Italic: true, Strikethrough: true },
        Border: { LineStyle: -4119, Color: '#FF0000' },
      });
    }

Interior

Range.Interior

获取指定范围的内部属性。

  • 语法

    表达式.Range.Interior

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取该区域的内部属性
      const interior = await range.Interior;
    }

属性

Range.Interior.Color

通过Color属性,您可以获取指定区域内部的颜色。

  • 语法

    表达式.Range.Interior.Color

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取内部属性
      const interior = await range.Interior;
    
      //设置内部颜色
      interior.Color = '#e1ff02';
    
      setTimeout(async () => {
        //3000 ms后获取内部颜色
        const color = await interior.Color;
        console.log(color);
      }, 3000);
    }

Validation

Range.Validation

获取指定区域中的数据有效性规则。

  • 语法

    表达式.Range.Validation

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取数据有效性规则
      const validation = await range.Validation;
    }

方法

Range.Validation.Add()

通过Add()方法,您可以新增数据有效性规则。

  • 语法

    表达式.Range.Validation.Add({ Type, Operator, Formula1, Formula2 })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Type

    Enum

    指定要对数据进行的有效性验证类型。更多信息,请参见XlDVType

    Operator

    Enum

    数据验证运算符。更多信息,请参见XlFormatConditionOperator

    Formula1

    String

    数据验证公式中的第一部分,不得超过255个字符。

    Formula2

    String

    • 当参数Operator取值为xlBetweenxlNotBetween时,数据验证公式的第二部分,不得超过255个字符。

    • 当参数Operator取值不为xlBetweenxlNotBetween时,将忽略此参数。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取数据有效性规则
      const validation = await range.Validation;
    
      //添加数据有效性规则
      await validation.Add({
        Type: app.Enum.XlDVType.xlValidateWholeNumber,
        Operator: app.Enum.XlFormatConditionOperator.xlBetween,
        Formula1: '1',
        Formula2: '5',
      });
    }

Range.Validation.Delete()

通过Delete()方法,您可以删除数据有效性规则。

  • 语法

    表达式.Range.Validation.Delete()

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取数据有效性规则
      const validation = await range.Validation;
    
      //添加数据有效性规则
      await validation.Add({
        Type: app.Enum.XlDVType.xlValidateWholeNumber,
        Operator: app.Enum.XlFormatConditionOperator.xlBetween,
        Formula1: '1',
        Formula2: '5',
      });
    
      //10000 ms后删除该规则
      setTimeout(async () => {
        await validation.Delete();
      }, 10000);
    }

Range.Validation.Modify()

通过Modify()方法,您可以修改数据有效性规则。

  • 语法

    表达式.Range.Validation.Modify({ Type, Operator, Formula1, Formula2 })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Type

    Enum

    指定要对数据进行的有效性验证类型。更多信息,请参见XlDVType

    Operator

    Enum

    数据验证运算符。更多信息,请参见XlFormatConditionOperator

    Formula1

    String

    数据验证公式中的第一部分,不得超过255个字符。

    Formula2

    String

    • 当参数Operator取值为xlBetweenxlNotBetween时,数据验证公式的第二部分,不得超过255个字符。

    • 当参数Operator取值不为xlBetweenxlNotBetween时,将忽略此参数。

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //获取区域对象
      const range = await app.Range('A1');
    
      //获取数据有效性规则
      const validation = await range.Validation;
    
      //添加数据有效性规则
      await validation.Add({
        Type: app.Enum.XlDVType.xlValidateWholeNumber,
        Operator: app.Enum.XlFormatConditionOperator.xlBetween,
        Formula1: '1',
        Formula2: '5',
      });
    
      //10000 ms后修改该规则
      setTimeout(async () => {
        await validation.Modify({
          Type: app.Enum.XlDVType.xlValidateWholeNumber,
          Operator: app.Enum.XlFormatConditionOperator.xlNotBetween,
          Formula1: '1',
          Formula2: '5',
        });
      }, 10000);
    }