Skip to content

Application ​

文档操作的顶级对象,对文档进行相关操作,都是间接或直接操作该对象。

Application 是一个文件的顶级对象,新打开一个文件返回的也是 Application。

而在脚本中的Application则是指当前文件的顶级对象,有且只有一个。

Application 对象的具体属性和方法请参阅下方的列表。

属性列表 ​

属性数据类型简介
ActiveSheetSheet当前的活动工作表
SheetsSheets当前文件的所有工作表
ActiveWorkbookWorkbook当前的文档
SelectionRange当前的选区对象
CellsRange当前工作表所有单元格
ColumnsRange当前工作表所有列
RowsRange当前工作表所有行
FileInfoObject当前文档的信息
UserInfoObject当前文档的用户信息
EnumEnum所有的枚举类型

方法列表 ​

方法返回类型简介
Range(address)Range获取当前 ActiveSheet 的某个区域(address 指定)
Sheets(name)Sheet获取名称为 name 的工作表

ActiveSheet ​

当前活动工作表,可以通过 Sheet.Activate()来切换活动工作表。该属性返回Sheet对象,能利用该属性操作当前活动工作表。

运行脚本的环境是独立在服务器的,因此脚本运行环境的 ActiveSheet 与用户环境的 ActiveSheet 不一定相同。

具体规则是:

1.运行脚本时会把脚本运行环境的 ActiveSheet 切换为用户环境当前的 ActiveSheet。

2.当脚本通过函数切换脚本运行环境的 ActiveSheet 时,用户环境的 ActiveSheet 不会同步切换。

数据类型 ​

Sheet - 当前活动工作表

示例 ​

js
console.log(Application.ActiveSheet.Name) // Sheet1

// 切换到名称为Sheet2的工作表
Application.Sheets.Item('Sheet2').Activate()
console.log(Application.ActiveSheet.Name) // Sheet2

// 将活动工作表的A1单元格赋值foo
Application.ActiveSheet.Range('A1').Value = 'foo'

Sheets ​

获取当前文件能操作的所有 Sheet,返回一个Sheets对象。

数据类型 ​

Sheets

示例 ​

js
// 工作簿(Workbook)中所有工作表(Sheet)的集合,下面两种写法是一样的
let sheets = Application.ActiveWorkbook.Sheets
sheets = Application.Sheets

// 打印所有工作表的名称
for (let i = 1; i <= sheets.Count; i++) {
  console.log(sheets.Item(i).Name)
}

Sheets.Count ​

工作表数量

数据类型 ​

Number - 对应工作簿的工作表数量

示例 ​

js
// 下面两种写法是一样的
let sheets = Application.ActiveWorkbook.Sheets
sheets = Application.Sheets

// 打印所有工作表的名称
console.log(sheets.Count) //1

Sheets.DefaultNewSheetName ​

默认新工作表名

返回类型 ​

String - 新建工作表时若没有指定名称,可用这个名称作为新建工作表名称

示例 ​

js
const defaultName = Application.Sheets.DefaultNewSheetName
// 工作表对象
Application.Sheets.Add(
  null,
  Application.ActiveSheet.Name,
  1,
  Application.Enum.XlSheetType.xlWorksheet,
  defaultName
)

Sheets.Add() ​

新增工作表,如果 Before 和 After 都存在,以 Before 为准

参数 ​

属性数据类型默认值必填
说明
BeforeString/Number否After 空时,必填,为当前已有单元格的 index 或者名称,新建的工作表将置于此工作表之前
AfterString/Number否Before 空时,必填,为当前已有单元格的 index 或者名称,新建的工作表将置于此工作表之后
CountNumber1否要添加的工作表数。默认值为选定工作表的数量
TypeEnum否指定工作表类型,详细可见 Enum.XlSheetType
NameName否指定工作表名称

示例 ​

js
// 添加工作表
Application.Sheets.Add(
  null,
  Application.ActiveSheet.Name,
  1,
  Application.Enum.XlSheetType.xlWorksheet,
  '新工作表'
)

Sheets.Item() ​

根据名称或索引选择 Sheet

参数 ​

属性数据类型默认值必填说明
indexString/Number是所选的 sheet 的名称/索引

返回类型 ​

Sheet - 对应名称的工作表

示例 ​

js
// 切换名称为"Sheet2"的工作表
Application.Sheets.Item('Sheet2').Activate()

// 切换索引为1的工作表
Application.Sheets.Item(1).Activate()

Sheets.Each() ​

遍历所有 sheet 并执行回调函数

参数 ​

属性数据类型默认值必填说明
callbackFunctionnull是类似 JS 数组的 forEach

示例 ​

js
// 打印所有工作表的名称
Application.Sheets.Each(function (item) {
  console.log(item.Name) //Sheet1 Sheet2
})

ActiveWorkbook ​

当前活动的文件。返回一个Workbook对象。

数据类型 ​

Workbook - 当前活动文件

示例 ​

js
//保存
Application.ActiveWorkbook.Save()

Selection ​

当前的选区对象。返回一个 Range 对象。

数据类型 ​

Range - 当前的选区对象

示例 ​

js
// 打印用户运行脚本时页面的选区地址,此处假设用户选择了A1
console.log(Application.Selection.Address()) // $A$1

Cells ​

当前 Sheet 的所有单元格。返回一个Range对象。

数据类型 ​

Range - 当前 Sheet 的所有单元格

示例 ​

js
const cells = Application.ActiveSheet.Cells
// 打印range里单元格的数量
console.log(cells.Count) // 17179869184

Columns ​

当前 Sheet 的所有列。返回一个Range对象。

数据类型 ​

Range - 当前 Sheet 的所有列

示例 ​

js
const columns = Application.ActiveSheet.Columns
// 打印列的数量
console.log(columns.Count) // 16384

Rows ​

当前 Sheet 的所有行。返回一个Range对象。

数据类型 ​

Range - 当前 Sheet 的所有行

示例 ​

js
let rows = Application.ActiveSheet.Rows

// 打印行的数量
console.log(rows.Count) // 1048576

FileInfo ​

返回当前文件的基本信息。

数据类型 ​

Object - 当前文件的信息

名称类型说明
idstring文件 ID
namestring文件名
officeTypestring文档类型
creatorCreatorObject文档创建者信息
sizenumber文件大小
groupIdstring文件的群组 ID
docTypenumber文档类型(数字形式)

CreatorObject 对象信息 ​

名称类型说明
idstring创建者 ID
namestring创建者名称
avatar_urlstring创建者头像
loginedboolean是否已登录
attrsObject属性对象
real_idstring真实 ID

示例 ​

javascript
// 打印文件信息
console.log(Application.FileInfo)
/*{
 "id": "<open_id>",
 ...
}*/

UserInfo ​

返回当前文件的用户信息。

数据类型 ​

Object- 当前文件的用户信息

名称类型说明
idstring用户 ID
namestring用户名称

示例 ​

javascript
// 打印用户信息
console.log(Application.UserInfo)

Enum ​

枚举类型,存放在 Application 下。

可以通过 Application.Enum 使用

数据类型 ​

Enum - 所有的枚举类型

示例 ​

js
// 打印工作表的类型枚举
console.log(Application.Enum.XlSheetType)
//{"xlChart":-4109,"xlDialogSheet":-4116,"xlExcel4IntlMacroSheet":4,"xlExcel4MacroSheet":3,"xlWorksheet":-4167}

Range() ​

获取当前 ActiveSheet 的某个区域的Range对象。

参数 ​

名称类型必填说明
addressstring是选择的地址,可以是单元格地址或者选区范围范围地址,例"A1"或"A1:A10"

返回类型 ​

Range - 给定地址区域的 Range 对象

示例 ​

js
// 以下两种写法的效果是一样的,都是获取当前激活的Sheet的A1单元格的内容
console.log(Application.Range('A1').Text) // A1单元格的内容

console.log(Application.ActiveSheet.Range('A1').Text) // A1单元格的内容

Sheets() ​

作为函数使用,代替 Sheets.Item(),返回一个Sheet对象。

参数 ​

名称类型必填说明
namestring是工作表的名称

返回类型 ​

Sheet - 对应名称的工作表 Sheet 对象

示例 ​

js
console.log(Application.Sheets.Count) // 1

// 以下两种写法效果是一样的
console.log(Application.Sheets('Sheet2').Range('A1').Text) // Sheet2的A1单元格的内容
console.log(Application.Sheets.Item('Sheet2').Range('A1').Text) // Sheet2的A1单元格的内容