Skip to content

Sheet

工作簿(Workbook)中单个工作表(Sheet)对象

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

属性列表

属性名数据类型简介
IdString该工作表的 Id
NameString该工作表的名称
IndexNumber该工作表在所有工作表的索引值
CellsRange该工作表上所有单元格的集合
ColumnsRange该工作表上所有列的集合
RowsRange该工作表上所有行的集合
UsedRangeRange该工作表的使用范围
VisibleBoolean该工作表是否可见
TypeString该工作表的类型
HyperlinksHyperlinks该工作表上所有超链接的集合
ShapesShapes该工作表上所有图形的集合
SortSort该工作表上排序对象

方法列表

方法名返回类型简介
Range()Range一个单元格或单元格区域
Cells()Range该工作表上的某个单元格
Activate()undefined切换(激活)工作表
Move()undefined移动工作表
Delete()undefined删除工作表

Id

获取工作表 Id

数据类型

String - 工作表 Id

示例

js
const sheet = Application.ActiveSheet
// 打印当前活动工作表的id
console.log(sheet.Id)

Name

设置/获取 工作表名称

数据类型

String - 该工作表在所有工作表的名称

示例

js
const sheet = Application.ActiveSheet
// 打印当前活动工作表的名称
console.log(sheet.Name) // Sheet2

// 将当前工作表的名称改为 WPS WebOffice
sheet.Name = 'WPS WebOffice'

Index

工作表的 index,即该工作表在所有工作表的索引值

数据类型

String - 该工作表在所有工作表的索引值

示例

js
const sheet = Application.ActiveSheet
// 打印当前活动工作表的index
console.log(sheet.Index) // 1

Cells

工作表上所有单元格的集合,返回一个 Range 对象(可使用 Range 相关的属性、方法)

数据类型

Range - 工作表上所有单元格的集合

示例

js
const sheet = Application.ActiveSheet
// 打印活动工作表的全部单元格地址
console.log(sheet.Cells.Address()) // $A$1:$XFD$1048576

Columns

工作表上的所有列,返回的是一个 Range 对象,可参考使用 Range

数据类型

Range - 工作表上的所有列

示例

js
// 打印该工作表列的数量
const sheet = Application.ActiveSheet
console.log(sheet.Columns.Count) //16384

Rows

工作表上的行,返回一个 Range 对象(可使用 Range 相关的属性、方法)

数据类型

Range - 工作表上的所有列

示例

js
const sheet = Application.ActiveSheet
console.log(sheet.Rows.Count) // 1048576

UsedRange

工作表激活的区域,即是工作表实际使用到的区域,返回一个 Range 对象(可使用 Range 相关的属性、方法)

数据类型

Range - 工作表里的一个单元格或单元格区域

示例

js
const UsedRange = Application.ActiveSheet.UsedRange
// 打印激活区域的范围,此处假设激活区域为10*10的单元格
console.log(
  UsedRange.Row,
  UsedRange.RowEnd,
  UsedRange.Column,
  UsedRange.ColumnEnd
) // 1,10,1,10

Visible

显示/隐藏 工作表

数据类型

Boolean - 工作表是否可见

示例

js
const sheet = Application.ActiveSheet
// 隐藏工作表
sheet.Visible = false
// 取消工作表隐藏
sheet.Visible = true

Type

工作表类型

数据类型

Enum.XlSheetType - 工作表的类型

示例

js
const sheet = Application.ActiveSheet
// 打印当前活动工作表的类型
console.log(sheet.Type) //xlWorksheet

AutoFilter

当前工作表的自动筛选对象,该对象内封装了当前工作表的所有筛选对象集合,以及应用和取消筛选条件的方法

数据类型

AutoFilter - 自动筛选对象

示例

js
// 获取自动筛选对象
const autoFilter = Application.ActiveSheet.AutoFilter
// 获取筛选对象集合
const filters = autoFilter.Filters
// 获取当前工作表所有筛选对象的数量
const count = filters.Count
console.log(count)

工作表上的所有超链接的集合

数据类型

Hyperlinks集合 - 所有超链接的集合对象

示例

js
// 打印超链接集合里超链接对象的个数
const hyperlinks = Application.ActiveSheet.Hyperlinks
console.log(hyperlinks.Count) // 3

集合中超链接的数量

数据类型

Number - 集合中超链接的数量

示例

js
// 打印超链接集合里超链接对象的个数
const hyperlinks = Application.ActiveSheet.Hyperlinks
console.log(hyperlinks.Count) // 3

获取超链接对象

参数

属性数据类型默认值必填说明
IndexNumber从 1 开始

返回类型

Hyperlink - 超链接对象

示例

js
const hyperlinks = Application.ActiveSheet.Hyperlinks
if (hyperlinks.Count <= 0) {
  throw new Error('当前文档没有超链接')
}
// 打印超链接的地址和文本
console.log(hyperlinks.Item(1).TextToDisplay) // 超链接的显示内容
console.log(hyperlinks.Item(1).Address) // 点击跳转的超链接

Shapes

当前工作表上的所有 Shape 对象的集合

数据类型

Shapes集合对象 - 该工作表上的所有 Shape 对象的集合

示例

js
const sheet = Application.ActiveSheet
const shapes = sheet.Shapes
const chartEnum = Application.Enum.XlChartType.xlColumnClustered //簇状柱形图
// 在图形对象集合中添加 300 * 300 的簇状柱形图
shapes.AddChart2(340, chartEnum, 0, 0, 300, 300)

Shapes.GetActiveShapeImg()

获取激活单元格的图片数据

返回类型

String - 图片原图下载链接

示例

js
// 假如A1有图片
Application.Range('A1').Select()
const imgUrl = Application.ActiveSheet.Shapes.GetActiveShapeImg()
console.log(imgUrl) // https://imageUrl 如果没有图片则返回undefined

Shapes.Item(Index)

代表绘图层中的对象,例如自选图形、任意多边形、OLE 对象或图片

参数

参数名数据类型默认值可选简介
indexNumber对象的索引

返回类型

Shape - 绘图层的一个对象,自选图形、任意多边形、OLE 对象或图片

示例

js
const shapes = Application.ActiveSheet.Shapes
// 打印第一个图形对象的ID
console.log(shapes.Item(1).ID)

Shapes.Count

图形的数量

数据类型

Nunber - 工作表的图形对象的数量

示例

js
const sheet = Application.ActiveSheet
const shapes = sheet.Shapes
// 打印当前图形的数量
console.log(shapes.Count)

Shapes.AddChart2()

添加图形

参数

属性数据类型默认值必填说明
StyleString指定图表样式
XlChartTypeEnum指定图表类型,对应 Enum.XlChartType
LeftNumber指定新建图表的左边距,单位 px
TopNumber指定新建图表的上边距,单位 px
WidthNumber指定新建图表的宽度,单位 px
HeightNumber指定新建图表的高度,单位 px

返回类型

Shape - 添加的图形对象

示例

js
const chartEnum = Application.Enum.XlChartType.xlColumnClustered //簇状柱形图的枚举
const sheet = Application.ActiveSheet
const shapes = sheet.Shapes
// 在图形对象集合中添加 300 * 300 的簇状柱形图
shapes.AddChart2(340, chartEnum, 0, 0, 300, 300)

Shapes.AddPicture()

向表格中插入浮动图片

参数

属性数据类型默认值必填说明
FileNameString要在其中创建图片的文件(可以是 Base64 字符串或者 URL 链接,如果是后者,则域名必须是https://wwww.kdocs.cn
LinkToFileEnum暂不支持,请填0
SaveWithDocumentEnum暂不支持,请填0
LeftNumber图片左边缘相对于表格左边缘的位置
TopNumber图片上边缘相对于表格片上边缘的位置
WidthNumber图片的宽度
HeightNumber图片的高度

示例

js
// 获取图形对象
const shapes = ActiveSheet.Shapes
// 插入浮动图片
shapes.AddPicture({
  FileName:
    'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAACH1BMVEUAAAA9kP8mpv9Fv/8QT94TXeQAfv8trP0xr/0VUdoAcv8LgPs1sf4AgP4QUuURTuEVl/ksq/wAg/84tf4NUt80sf0bnPsPUuAAYfsAgP4UTtYAY/8GXPQRkv1Jxv8AZP86tv9Bvv9Gv/9Atv8KiPUOVesAZ+wbS8wUl/kjo/sAYv8PVekjovxBu/8AY/8trPxCu/8AW/AAcvAxsP0npvsYTdElo/oQT9o+uP8AYv8KVOIHdugAYfwAfPwbfe49uf4XmfkcdOopo/oAYv86tf4AYf8TT9cZaeYVTdUJVOUcnvsAYv8Agv9Iwv8AYv9Jwf8bSs0gofoAY/8Ag/9Gv/8en/oAYf9Fv/8AWuQZS80AdO5BvP8AYv9DvP8Umfo9uv8LVOUAgf8amfk/uf8AY/8Ag/8Ahf8TUdgVT9UNWOknov8trPwxr/wmpvspqfs1sv0io/s5tf0AgP8bnfoMV+4AYPoAYv8AYf4AYfwAe/sen/oAd/gAXvYAff0LW/MLWfEOUN0PT9oSTtZAu/49uP0qqfweoPoXmvkAdPUAXPIAcfEKUuIWTNIXS88KXPYAWusOVeoPVOkPUuYQUeQQT+IMUeAUTdMZSs09uP4Aa+kAWOgAaeQIVOQIU+QAV+MRTd8STd0RTtgSl/kAW+8NWO8Abu0AbuwBZNsAg/8AYPwAc/MIVecAZuEAVeAAWt8AZN0JgvAIfOsJV+sTVuIAU9qil9AQAAAAa3RSTlMAAwb++A3+bkkkGxL8+Pf36tnTubCYjol4dmVjRjEvLysZFA7+/Pv6+fj39/b19fPw8O/u7Ovq6Ofn5+Xj4uDa2trZ1dPS0s/Ny7+9vLi4trapoqGgoJ2XkI+KgoJycGRhX1BNS0pHQj06IcCB3jkAAAIBSURBVDjLdZCHctpAFEWfCMU1ce8tTu+99957770nJFGwkE1sgyMTAginYbkAIQSD494+0G+ltTAacWZnNLt7dO/Og3Tqzl2og8wsvroAudEI+iy5s+6LzMZ7Bp1r5sFOQegRenAJwoEnoCXr6Mc0ihvSrhuK32vJK21Mva00760OWyz0KZYNbzJQmKXUF1o7rZ24rGngweETIGOwbH2nw/ZDUaM6grJVHzSs3R+NoqDy+lKLuwWX2618r03/QRalhNzbewo+qZyuZX4TVMFQubm3f3xy5VeZg49xsL8IC+mUH+1zeLyJ3pHkRCwWK7hvIGc/CYrwvIhtbXZ4hgYwJLm0LFf56QdhDRAq8wdZMypD3kT/SBJo6nfCMmWTc2WQlUO8GDIn2GSAUnuWGERJpIS4LR4HlWdFNITua9pl5s3h5vJ81tzscAAhuyTc3kZQ51CxqasvMmDGENyZyo1BX2iqLRAI0L7qvU2fv6Ex5mVbgana4XIGfb7QsI0KNcc4O4/Gv67I6Jjn5cmOvy4nGuFwaFipqFjN2YlBQkZn/N0dxAhiSfjUKzqHyxwq/0lIX0T0d6OAGb7dD0Gl/gzH8UqN6JcNp7HcBPN5esTO8U2oSCIpcZVkgwamepedxxpJROP4C9DBdHc9vlWSxG1VDOiTc53jpRW3TJCZ+vMXNeWzDz4DoNZyqecAAAAASUVORK5CYII=',
  LinkToFile: 0,
  SaveWithDocument: 0,
  Left: 30, // 图片距离左边位置
  Top: 30, // 图片距离顶部位置
  Width: 32, // 图片宽度
  Height: 32 // 图片高度
})

Sort

排序对象,设置好目标区域后即可进行排序操作

数据类型

Sort - 排序对象

示例

js
// 对 C 列降序排序并且对 D 列做升序排序

//获取当前表格区域
const range = ActiveSheet.UsedRange
//获取到排序对象
const sort = ActiveSheet.Sort
//获取排序范围
const sortFields = sort.SortFields
//清除之前的范围
sortFields.Clear()
//基于C列降序排序, xlSortOnValues代表按值排序, xlDescending代表降序排序
sortFields.Add(Range('C:C').Item(1, 1), xlSortOnValues, xlDescending)
//基于D列升序排序, xlSortOnValues代表按值排序, xlAscending代表升序排序
sortFields.Add(Range('D:D').Item(1, 1), xlSortOnValues, xlAscending)
//设置是否包含表头参数,xlGuess为自动,xlYes为包含表头,xlNo为不包含表头。默认设置为xlGuess
sort.Header = xlGuess
//设置是否大小写敏感,true为区分大小写,false为不区分大小写,默认设置false
sort.MatchCase = false
//设置中文排序方法,xlPinYin为拼音排序,xlStroke为比划数排序。默认设置为xlPinYin
sort.SortMethod = xlPinYin
//设置排序的方法,xlSortColumns为按列排序,xlSortRows为按行排序,默认设置为xlSortColumns
sort.Orientation = xlSortColumns
//排序前必须设置SetRange
sort.SetRange(range)
//开始排序
sort.Apply()

Range()

一个单元格或单元格区域,返回一个 Range 对象(可使用 Range 相关的属性、方法)

数据类型

Range - 工作表里的一个单元格或单元格区域

示例

js
const sheet = Application.ActiveSheet
// 打印当前活动工作表D2单元格的内容
console.log(sheet.Range('D2').Text) // D2

// 修改当前活动工作表D2单元格的内容
sheet.Range('D2').Value = 'this is D2'

Cells()

选择工作表上的某个单元格,返回一个 Range 对象(可使用 Range 相关的属性、方法)

返回类型

Range - 工作表上的某个单元格

示例

js
// 打印活动工作表的第一个单元格地址
console.log(Application.Cells(1).Address()) // $A$1
console.log(Application.Cells(2).Address()) // $A$2

Activate()

激活工作表

示例

js
const sheet = Application.Sheets.Item(1)
// 激活第一个工作表,此时的Application.ActiveSheet.Range和此时的Application.Range都指向第一个工作簿
sheet.Activate()
// 修改了第一个工作表的A1单元格
Application.Range('A1').Value = 'foo'

Move()

移动工作表

参数

两个参数互斥

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

示例

js
// 将当前工作表移动到第二个工作表之后
const sheet = Application.ActiveSheet
sheet.Move({
  Before: null,
  After: Application.Sheets(2).Id
})

Delete()

删除工作表

返回值

undefined

示例

js
// 删除名称为“Sheet2”的工作表
Application.Sheets.Item('Sheet2').Delete()