区域

本文介绍如何在表格文件中获取指定区域、设置区域属性和为指定区域添加数据有效性规则等功能。

区域对象

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

  • 语法

    表达式.Range

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

  • 示例

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

区域子项

返回一个Range对象,表示区域中指定的位置。

  • 语法

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

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    RowIndex

    Number

    行号或索引。

    • 如果提供了第二个参数,则为要返回的单元格的相对行号。

    • 如果未提供第二个参数,则为要返回的子范围的索引。

    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.ColumnWidth

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //区域对象
      const range = await app.Range('A1:B2');
    
      //区域宽度
      range.ColumnWidth = 30;
    }

获取区域高度

  • 语法

    表达式.Range.RowHeight

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //区域对象
      const range = await app.Range('A1:B2');
    
      //区域高度
      range.RowHeight = 100;
    }

获取区域数量

  • 语法

    表达式.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);
    }

获取左边距

左边距为从列A的左边缘到该区域的左边缘的距离。

  • 语法

    表达式.Range.Left

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //区域对象
      const range = await app.Range('B2');
    
      //左边距
      const left = await range.Left;
      console.log(left);
    }

获取上边距

上边距为从行1的上边缘到区域的上边缘之间的距离。

  • 语法:

    表达式.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.Hidden

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

  • 示例

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

设置区域水平对齐方式

  • 语法:

    表达式.Range.HorizontalAlignment

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

  • 可设置的值

    字段

    释义

    xlHAlignRight

    -4152

    靠右对齐。

    xlHAlignLeft

    -4131

    靠左对齐。

    xlHAlignJustify

    -4130

    两端对齐。

    xlHAlignDistributed

    -4117

    分散对齐。

    xlHAlignCenter

    -4108

    居中对齐。

    xlHAlignGeneral

    1

    按数据类型对齐。

    xlHAlignFill

    5

    填充对齐。

    xlHAlignCenterAcrossSelection

    7

    跨列居中对齐。

  • 示例

    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 () => {
        //获取对齐方式
        const horizontalAlignment = await range.HorizontalAlignment;
        console.log(horizontalAlignment);
      }, 3000);
    }

设置区域垂直对齐方式

  • 语法:

    表达式.Range.VerticalAlignment

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

  • 可设置的值

    字段

    释义

    xlVAlignTop

    -4160

    向上。

    xlVAlignJustify

    -4130

    调整使全行排满。

    xlVAlignDistributed

    -4117

    一起。

    xlVAlignCenter

    -4108

    居中。

    xlVAlignBottom

    -4107

    向下。

  • 示例

    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 () => {
        //获取对齐方式
        const horizontalAlignment = await range.VerticalAlignment;
        console.log(horizontalAlignment);
      }, 3000);
    }

内部属性

获取内部属性对象

  • 语法

    表达式.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

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

  • 示例

    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 () => {
        //获取内部颜色
        const color = await interior.Color;
        console.log(color);
      }, 3000);
    }

方法

激活区域

  • 语法

    表达式.Range.Activate()

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

  • 示例

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

选择区域

  • 语法

    表达式.Range.Select()

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

  • 示例

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

删除区域内容

  • 语法

    表达式.Range.ClearContents()

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //区域对象
      const range = await app.Range('A1:B2');
    
      //删除区域内容
      await range.ClearContents();
    }

判断区域是否重叠

  • 语法

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

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

  • 参数

    属性

    数据类型

    是否必填

    描述

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

区域引用

获取使用宏语言的区域引用的String值。

  • 语法

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

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    RowAbsolute

    Boolean

    默认值为true。若为true,以绝对引用的形式返回引用的行部分。

    ColumnAbsolute

    Boolean

    默认值为true。若为true,以绝对引用的形式返回引用的列部分。

    ReferenceStyle

    Enum

    引用样式。Enum.XlReferenceStyle取值:

    • -4150或xlR1C1:返回R1C1样式的引用。

    • 1或xlA1(默认):返回A1样式的引用。

    External

    Boolean

    默认值为false。

    • true:返回外部引用。

    • false:返回本地引用。

    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({ Destination, Type })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Destination

    Range

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

    Type

    Enum

    填充类型。Enum.XlAutoFillType取值:

    • 0或xlFillDefault(默认):确定用于填充目标区域的值和格式。

    • 1或xlFillCopy:将源区域的值和格式复制到目标区域,如有必要可重复执行。

    • 2或xlFillSeries:将源区域的值扩展到目标区域,形式为系列(如“1,2”扩展为“3,4,5”);将源区域的格式复制到目标区域,如有必要可重复执行。

    • 3或xlFillFormats:只将源区域的格式复制到目标区域,如有必要可重复执行。

    • 4或xlFillValues:只将源区域的值复制到目标区域,如有必要可重复执行。

    • 5或xlFillDays:将星期中每天的名称从源区域扩展到目标区域;将源区域的格式复制到目标区域,如有必要可重复执行。

    • 6或xlFillWeekdays:将工作周每天的名称从源区域扩展到目标区域;将源区域的格式复制到目标区域,如有必要可重复执行。

    • 7或xlFillMonths:将月名称从源区域扩展到目标区域;将源区域的格式复制到目标区域,如有必要可重复执行。

    • 8或xlFillYears:将年从源区域扩展到目标区域;将源区域的格式复制到目标区域,如有必要可重复执行。

    • 9或xlLinearTrend:将数值从源区域扩展到目标区域,假定数字之间是加法关系(如“1,2,”扩展为“3,4,5”,假定每个数字都是前一个数字加上某个值的结果);将源区域的格式复制到目标区域,如有必要可重复执行。

    • 10或xlGrowthTrend:将数值从源区域扩展到目标区域,假定源区域的数字之间是乘法关系(如“1,2,”扩展为“4,8,16”,假定每个数字都是前一个数字乘以某个值的结果)。将源区域的格式复制到目标区域,如有必要可重复执行。

  • 示例

    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.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.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.Borders

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

  • 示例

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

单个边框

获取单个边框对象

单个边框对象代表单元格区域或样式的边框之一。

  • 语法

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

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Index

    Enum

    指定要检索的边框。Enum.XlBordersIndex取值:

    • 5或xlDiagonalDown:从区域中每个单元格的左上角到右下角的边框。

    • 6或xlDiagonalUp:从区域中每个单元格的左下角到右上角的边框。

    • 7或xlEdgeLeft:区域左边缘的边框。

    • 8或xlEdgeTop:区域顶部的边框。

    • 9或xlEdgeBottom:区域底部的边框。

    • 10或xlEdgeRight:区域右边缘的边框。

    • 11或xlInsideVertical:区域中所有单元格的垂直边框(区域以外的边框除外)。

    • 12或xlInsideHorizontal:区域中所有单元格的水平边框(区域以外的边框除外)。

    • 13或xlOutside:区域中的上下左右。

    • 14或xlInside:中间区域。

  • 示例

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

获取边框颜色

  • 语法

    表达式.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.xlDiagonalDown);
    
      //获取边框颜色
      const color = await border.Color;
      console.log(color);
    }

设置边框的线条样式

  • 语法

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

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

  • 示例

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

设置边框的粗细

  • 语法

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

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

  • 示例

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

获取指定行

获取区域中的某行,返回一个Range对象(可使用Range相关的属性、方法)。

  • 语法

    表达式.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);
    
      //选中第2行
      await row.Select();
    }

获取首行行号

获取区域中第一行的行号。

  • 语法

    表达式.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

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

  • 示例

    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.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对象(可使用Range相关的属性、方法)。

  • 语法

    表达式.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);
    
      //选中第2列
      await column.Select();
    }

获取首列列号

获取区域中第一列的列号。

  • 语法

    表达式.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

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

  • 示例

    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.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对象(可使用Range相关的属性、方法)。

  • 语法

    表达式.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;
    
      //选中第1个单元格
      await cell.Select();
    }

获取单元格文本

  • 语法

    表达式.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.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.MergeArea

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //区域对象
      const range = await app.Range('A1:D2');
    
      //合并单元格
      await range.Merge();
    
      //页面加载合并后,5000 ms内点击空白区域,5000 ms后自动选择该区域
      setTimeout( async () => {
        //单元格的合并区域
        const mergeArea = await range.MergeArea;
        mergeArea.Select();
      }, 5000);
    }

查询合并单元格

查询区域内是否存在合并的单元格。

  • 语法

    表达式.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.Value

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
    
      //区域对象
      const range = await app.Range('A1');
    
      //写入值到单元格中
      range.Value = 'WebOffice';
    }

字体

获取字体对象

  • 语法

    表达式.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

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

  • 示例

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

设置和获取字体加粗

  • 语法

    表达式.Range.Font.Bold

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

  • 示例

    async function example() {
      await instance.ready();
    
      const app = instance.Application;
      
      //区域对象
      const range = await app.Range('A1');
    
      //字体对象
      const font = range.Font;
    
      //获取字体加粗
      const isBold = await font.Bold;
      console.log('字体是否加粗:', isBold);
    
      //设置字体加粗
      font.Bold = true;
    }

评论

添加评论

给指定区域添加评论。

  • 语法

    表达式.Range.AddComment({ Text })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Text

    String

    评论文本。

  • 示例

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

清除评论

清除指定区域的评论。

  • 语法

    表达式.Range.ClearComments()

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

  • 示例

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

公式

设置公式

以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

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

  • 示例

    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.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({ Type, Operator, Formula1, Formula2 })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Type

    Enum

    指定条件格式是基于单元格值还是基于表达式。Enum.XlFormatConditionType取值:

    • 1或xlCellValue:单元格值。

    • 2或xlExpression:表达式。

    • 3或xlColorScale:色阶。

    • 5或xlTop10:前10个值。

    • 8或xlUniqueValues:唯一值。

    • 9或xlTextString:文本字符串。

    • 10或xlBlanksCondition:空值条件。

    • 11或xlTimePeriod:时间段。

    • 12或xlAboveAverageCondition:高于平均值条件。

    • 13或xlNoBlanksCondition:无空值条件。

    • 16或xlErrorsCondition:错误条件。

    • 17或xlNoErrorsCondition:无错误条件。

    Operator

    Number

    条件格式运算符,可以是以下常量之一,Enum.XlFormatConditionOperator取值:

    • 1或xlBetween:行间。只在提供了两个公式的情况下才能使用。

    • 2或xlNotBetween:不介于。只在提供了两个公式的情况下才能使用。

    • 3或xlEqual:等于。

    • 4或xlNotEqual:不等于。

    • 5或xlGreater:大于。

    • 6或xlLess:小于。

    • 7或xlGreaterEqual:大于或等于。

    • 8或xlLessEqual:小于或等于。

    Formula1

    Number

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

    Formula2

    Number

    当条件格式运算符为xlBetween或xlNotBetween时,为条件格式第二部分相关联的值或表达式(取值为其他值时,将忽略此参数)。可为常量值、字符串值、单元格引用或公式。

  • 示例

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

数据有效性

获取数据有效性对象

  • 语法

    表达式.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({ Type, Operator, Formula1, Formula2 })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Type

    Enum

    验证警报样式。Enum.XlDVType取值:

    • 1或xlValidateWholeNumber:全部数值。

    • 2或xlValidateDecimal:数值。

    • 3或xlValidateList:值必须存在于指定列表中。

    • 4或xlValidateDate:日期值。

    • 5或xlValidateTime:时间值。

    • 6或xlValidateTextLength:文本长度。

    • 7或xlValidateCustom:使用任意公式验证数据有效性。

    Operator

    Enum

    数据验证运算符。Enum.XlFormatConditionOperator取值:

    • 1或xlBetween:行间。只在提供了两个公式的情况下才能使用。

    • 2或xlNotBetween:不介于。只在提供了两个公式的情况下才能使用。

    • 3或xlEqual:等于。

    • 4或xlNotEqual:不等于。

    • 5或xlGreater:大于。

    • 6或xlLess:小于。

    • 7或xlGreaterEqual:大于或等于。

    • 8或xlLessEqual:小于或等于。

    Formula1

    String

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

    Formula2

    String

    当数据验证运算符为xlBetween或xlNotBetween时,为数据验证等式的第二部分内容(取值为其他值时将忽略此参数)。

  • 示例

    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.Modify({ Type, Operator, Formula1, Formula2 })

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

  • 参数

    属性

    数据类型

    是否必填

    描述

    Type

    Enum

    验证警报样式。Enum.XlDVType取值:

    • 1或xlValidateWholeNumber:全部数值。

    • 2或xlValidateDecimal:数值。

    • 3或xlValidateList:值必须存在于指定列表中。

    • 4或xlValidateDate:日期值。

    • 5或xlValidateTime:时间值。

    • 6或xlValidateTextLength:文本长度。

    • 7或xlValidateCustom:使用任意公式验证数据有效性。

    Operator

    Enum

    数据验证运算符。Enum.XlFormatConditionOperator取值:

    • 1或xlBetween:行间。只在提供了两个公式的情况下才能使用。

    • 2或xlNotBetween:不介于。只在提供了两个公式的情况下才能使用。

    • 3或xlEqual:等于。

    • 4或xlNotEqual:不等于。

    • 5或xlGreater:大于。

    • 6或xlLess:小于。

    • 7或xlGreaterEqual:大于或等于。

    • 8或xlLessEqual:小于或等于。

    Formula1

    String

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

    Formula2

    String

    当数据验证运算符为xlBetween或xlNotBetween时,为数据验证等式的第二部分内容(取值为其他值时将忽略此参数)。

  • 示例

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

删除数据验证

删除数据有效性规则。

  • 语法

    表达式.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);
    }