# 工作表(Sheet)

工作表对象

### 属性列表

|属性|说明|
|-|-|
|[AllowEditRanges](#alloweditranges)|活动工作簿中的活动工作表的可编辑区域|
|[Cells](#cells)|工作表上的所有单元格，返回的是一个 Range 对象，可参考使用 [Range（区域）](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Range.html)|
|[Columns](#columns)|工作表上的所有列，返回的是一个 Range 对象，可参考使用 [Range（区域）](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Range.html)|
|[Id](#id)|工作表对应编号|
|[Index](#index)|工作表对应索引号|
|[Name](#name)|获取当前工作表名称|
|[Names](#names)|返回一个 Names 集合，该集合代表所有工作表特定的名称，详细使用可参考 [名称管理器](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Names.html)|
|[Range](#range)|返回一个 Range 对象，它表示一个单元格或单元格区域，详细可参考 [Range（区域）](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Range.html)|
|[Rows](#rows)|工作表上的所有行，返回的是一个 Range 对象，可参考使用 [Range（区域）](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Range.html)|
|[Shapes](#shapes)|当前工作表上的所有 Shape 对象的集合，使用方式可见 [Shapes 对象](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Shapes.html)|
|[Type](#type)|工作表对应类型|
|[UsedRange](#usedrange)|工作表上的所用区域，返回 Range 区域对象，详细可参考 [Range（区域）](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Range.html)|
|[Visible](#visible)|工作表是否可见|

### 方法列表

|方法|说明|
|-|-|
|[Add()](#add)|在受保护的工作表（Sheet）中添加一个可编辑区域|
|[Activate()](#activate)|切换到指定工作表|
|[Delete()](#delete)|删除工作表|
|[ExportAsFixedFormat()](#exportasfixedformat)|导出整个表格为对应的 PDF 或者 Img 图片，并获取导出后的 url|
|[Move()](#move)|移动工作表|
|[Protect()](#protect)|保护工作表使其不被修改|
|[Unprotect()](#unprotect)|去除工作表或工作簿中的保护。如果工作表或工作簿不是受保护的，则此方法不起作用|
|[ResetClipBoard()](#resetclipboard)|清除复制蚂蚁线|

## AllowEditRanges

活动工作簿中的活动工作表的可编辑区域

#### 数据类型

`AllowEditRanges` - 可编辑区域集合对象

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 可编辑区域
  const allowEditRanges = await activeSheet.AllowEditRanges
}
```

## Cells

工作表上的所有单元格，返回的是一个 Range 对象，可参考使用 [Range（区域）](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Range.html)

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Cells`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 工作表上的所有单元格
  const cells = await activeSheet.Cells
}
```

## Columns

工作表上的所有列，返回的是一个 Range 对象，可参考使用 [Range（区域）](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Range.html)

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Columns`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 工作表上的所有列
  const chartObjects = await activeSheet.Columns
}
```

## Id

工作表对应编号

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Id`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 工作表对应编号
  const id = await activeSheet.Id
  console.log(id)
}
```

## Index

工作表对应索引号

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Index`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 工作表对应索引号
  const index = await activeSheet.Index
  console.log(index)
}
```

## Name

获取当前工作表名称

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Name`

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

#### 返回值

返回 `String` 表示对应的 Sheet 名称。

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 获取当前工作表名称
  const name = await app.ActiveWorkbook.ActiveSheet.Name
  console.log(name)
}
```

## Names

返回一个 Names 集合，该集合代表所有工作表特定的名称，详细使用可参考 [名称管理器](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Names.html)

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Names`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 返回一个 Names 集合，该集合代表所有工作表特定的名称
  const names = await activeSheet.Names
}
```

## Range

返回一个 Range 对象，它表示一个单元格或单元格区域，详细可参考 [Range（区域）](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Range.html)

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Range`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 返回一个 Range 对象，它表示一个单元格或单元格区域
  const range = await activeSheet.Range
}
```

## Rows

工作表上的所有行，返回的是一个 Range 对象，可参考使用 [Range（区域）](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Range.html)

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Rows`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 工作表上的所有行
  const chartObjects = await activeSheet.Rows
}
```

## Shapes

当前工作表上的所有 Shape 对象的集合，使用方式可见 [Shapes 对象](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Shapes.html)

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Shapes`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 当前工作表上的所有 Shape 对象的集合
  const shapes = await activeSheet.Shapes
}
```

## Type

工作表对应类型

普通工作表 xlWorksheet、空白数据表 xlEtDataBaseSheet、仪表板 xlEtDashBoardSheet

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Type`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 工作表对应类型
  const type = await activeSheet.Type
  console.log(type)
}
```

## UsedRange

工作表上的所用区域，返回 Range 区域对象，详细可参考 [Range（区域）](/app-integration-dev/docs-center/online-preview-edit/client/Excel/Range.html)

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.UsedRange`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 工作表上的所用区域
  const UsedRange = await activeSheet.UsedRange
}
```

## Visible

工作表是否可见

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Visible`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 工作表不可见
  activeSheet.Visible = false
}
```

## Add()

在受保护的工作表（Sheet）中添加一个可编辑区域

#### 参数

| 属性     | 数据类型 | 默认值 | 必填 | 说明       |
| -------- | -------- | ------ | ---- | ---------- |
| Range    | Object   |        | 是   | Range 对象 |
| Title    | String   |        | 否   | 标题       |
| Password | String   |        | 否   | 密码       |

#### 返回类型

无

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 可编辑区域
  const allowEditRanges = await activeSheet.AllowEditRanges

  // 范围：左上角至 A1，右下角至 E20
  const range = await activeSheet.Range('$A1:$E20')

  // 添加可编辑区域
  await allowEditRanges.Add({Title:undefined, Range: range, Password: '123456'});
}
```

## Activate()

切换到指定工作表

### 语法

`表达式.ActiveWorkbook.Sheets.Item(Index).Activate()`

`表达式.Sheets(Index).Activate()`

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

### 参数

| 属性  | 数据类型 | 默认值 | 必填 | 说明              |
| ----- | -------- | ------ | ---- | ----------------- |
| Index | Number   |        | 是   | 第 Index 个 Sheet |

### 示例一

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 切换到指定工作表
  const sheetIndex = 2 // Sheets 序号，从 1 开始
  app.ActiveWorkbook.Sheets.Item(sheetIndex).Activate()
}
```

### 示例二

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 切换到指定工作表
  const sheetIndex = 2 // Sheets 序号，从 1 开始
  app.Sheets(sheetIndex).Activate()
}
```

## Delete()

删除工作表

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Delete()`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 删除工作表
  await activeSheet.Delete()
}
```

## ExportAsFixedFormat()

导出整个表格为对应的 PDF 或者 Img 图片，并获取导出后的 url

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.ExportAsFixedFormat({ Type })`

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

#### 参数

| 属性 | 数据类型 | 默认值 | 必填 | 说明                                                                                                                    |
| ---- | -------- | ------ | ---- | ----------------------------------------------------------------------------------------------------------------------- |
| Type | Enum     |        | 可选 | 导出的类型，详细可参考 [Enum.XlFixedFormatType](/app-integration-dev/docs-center/online-preview-edit/client/Enum/Excel.html#xlfixedformattype)，目前仅支持导出图片和导出 PDF |

#### 返回值

| 属性 | 数据类型 | 说明         |
| ---- | -------- | ------------ |
| url  | string   | 导出后的 url |

#### 示例 1：导出 PDF

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 导出整个表格
  const workbookPdfUrl =
    await app.ActiveWorkbook.ActiveSheet.ExportAsFixedFormat()
  console.log(workbookPdfUrl)
}
```

#### 示例 2：导出图片

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 导出整个表格
  const workbookImgUrl =
    await app.ActiveWorkbook.ActiveSheet.ExportAsFixedFormat({
      Type: app.Enum.XlFixedFormatType.xlTypeIMG
    })
  console.log(workbookImgUrl)
}
```

## Move()

移动工作表

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Move({ Before, After })`

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

#### 参数

| 属性   | 数据类型 | 默认值 | 必填 | 说明                                                                      |
| ------ | -------- | ------ | ---- | ------------------------------------------------------------------------- |
| Before | number   | null   | 否   | 验将放置移动的工作表之前的工作表 ID。如果指定 After ，则不能指定 Before。 |
| After  | number   | null   | 否   | 将放置移动的工作表后的工作表 ID。如果指定 Before ，则不能指定 After       |

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  await app.ActiveWorkbook.Sheets(1).Move({
    Before: null,
    After: await app.ActiveWorkbook.Sheets(2).Id
  })
}
```

## Protect()

保护工作表使其不被修改

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Protect({ Password, DrawingObjects, Scenarios, AllowFormattingCells, AllowFormattingColumns, AllowFormattingRows, AllowInsertingColumns, AllowInsertingRows, AllowInsertingHyperlinks, AllowDeletingColumns, AllowDeletingRows, AllowSorting, AllowFiltering, AllowUsingPivotTables })`

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

#### 参数

| 属性                     | 数据类型 | 默认值 | 必填 | 说明                                                                                                                                                                                                     |
| ------------------------ | -------- | ------ | ---- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Password                 | String   |        | 否   | 指定工作表或工作簿的区分大小写密码的字符串。如果省略此参数，可以不使用密码地解除对工作表或工作簿的保护。否则，必须指定密码才能解除对工作表或工作簿的保护。如果忘记密码，则无法解除对工作表或工作簿的保护 |
| DrawingObjects           | Boolean  | false  | 否   | 如果为 true，则保护形状                                                                                                                                                                                  |
| Scenarios                | Boolean  | true   | 否   | 如果为 true，则保护方案。此参数仅对工作表有效                                                                                                                                                            |
| AllowFormattingCells     | Boolean  | false  | 否   | 如果为 true，则允许用户格式化受保护工作表上的任何单元格                                                                                                                                                  |
| AllowFormattingColumns   | Boolean  | false  | 否   | 如果为 true，则允许用户格式化受保护工作表上的任何列                                                                                                                                                      |
| AllowFormattingRows      | Boolean  | false  | 否   | 如果为 true，则允许用户格式化受保护的工作表上的任何行                                                                                                                                                    |
| AllowInsertingColumns    | Boolean  | false  | 否   | 如果为 true，则允许用户在受保护工作表上插入列                                                                                                                                                            |
| AllowInsertingRows       | Boolean  | false  | 否   | 如果为 true，则允许用户在受保护工作表上插入行                                                                                                                                                            |
| AllowInsertingHyperlinks | Boolean  | false  | 否   | 如果为 true，则允许用户在受保护的工作表上插入超链接                                                                                                                                                      |
| AllowDeletingColumns     | Boolean  | false  | 否   | 如果为 true，则允许用户在受保护的工作表上删除列，其中要删除的列中的每个单元格都处于解锁状态                                                                                                              |
| AllowDeletingRows        | Boolean  | false  | 否   | 如果为 true，则允许用户在受保护的工作表上删除行，其中要删除的行中的每个单元格都处于解锁状态                                                                                                              |
| AllowSorting             | Boolean  | false  | 否   | 如果为 true，则允许用户对受保护工作表进行排序。排序范围内的每个单元都必须处于解锁或不受保护的状态                                                                                                        |
| AllowFiltering           | Boolean  | false  | 否   | 如果为 true，则允许用户在受保护的工作表上设置筛选。用户可以更改筛选条件，但无法启用或禁用自动筛选。 用户可以在现有自动筛选上设置筛选                                                                     |
| AllowUsingPivotTables    | Boolean  | false  | 否   | 如果为 true，则允许用户在受保护的工作表上使用数据透视表                                                                                                                                                  |

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 输入密码
  activeSheet.Protect({Password:'123456'});
}
```

## Unprotect()

去除工作表或工作簿中的保护。如果工作表或工作簿不是受保护的，则此方法不起作用

#### 语法

`表达式.ActiveWorkbook.ActiveSheet.Unprotect({ Password })`

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

#### 参数

| 属性     | 数据类型 | 默认值 | 必填 | 说明       |
| -------- | -------- | ------ | ---- | ---------- |
| Password | String   |        | 否   | 设置的密码 |

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application

  // 活动工作簿中的活动工作表
  const activeSheet = await app.ActiveWorkbook.ActiveSheet

  // 解除密码
  activeSheet.Unprotect('123456')
}
```

## ResetClipBoard()

清除复制蚂蚁线

#### 语法

`表达式.ActiveWorkbook.ResetClipBoard({ Range })`

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

#### 示例

```js
//@file=base.xlsx
async function example() {
  await instance.ready()

  const app = instance.Application
  const range = await app.Selection
  // 清除复制蚂蚁线
  await app.ActiveWorkbook.ResetClipBoard()
}
```
