Skip to content

图形(Shapes)

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

属性列表

属性说明
图形的数量

方法列表

方法说明
添加图形
将图片插入到当前表格中
代表绘图层中的对象,例如自选图形、任意多边形、OLE 对象或图片
单个图表对象
单个图形 ID
单个图形的图片下载链接
单个图形标题
单个图形标题
删除单个图形
选择单个图形
查询-选中的图形对象
查询-选中的图形对象集合

Count

图形的数量

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.Count

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

示例

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

  // 当前图形的数量
  const count = await shapes.Count
  console.log(count)
}

AddChart2()

添加图形

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.AddChart2({ Style, XlChartType, Left, Top, Width, Height })

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

参数

属性数据类型默认值必填说明
Style
String
指定图表样式
XlChartType
Enum
指定图表类型,对应 Enum.XlChartType
Left
Number
指定新建图表的左边距,单位 px
Top
Number
指定新建图表的上边距,单位 px
Width
Number
指定新建图表的宽度,单位 px
Height
Number
指定新建图表的高度,单位 px

示例

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

  // 添加 300 * 300 的矩形
  await shapes.AddChart2(340, 51, 0, 0, 300, 300)
}

AddPicture()

将图片插入到当前表格中

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.AddPicture({ FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height, Scale })

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

参数

属性数据类型默认值必填说明
FileName
String
要在其中创建图片的文件(可以是 Base64 字符串或者在线 URL 链接,链接需要与https://wwww.kdocs.cn同域名)
LinkToFile
Enum
确定是否将图片链接到从中创建该图片的文件,FileName为URL时设置为 -1。更多可看Enum.MsoTriState
SaveWithDocument
Enum
确定是否将已链接的图片插入到文档一起保存。 如果链接到文件为msoFalse,则此参数必须为msoTrue。更多可看Enum.MsoTriState
Left
Number
图片左边缘相对于表格左边缘的位置,单位 px
Top
Number
图片上边缘相对于表格片上边缘的位置,单位 px
Width
Number
图片的宽度,单位 px
Height
Number
图片的高度,单位 px
Scale
Boolean
是否按表格比例计算宽高和坐标

示例

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

  const app = instance.Application

  // 获取图形对象
  const shapes = await app.ActiveSheet.Shapes
  // 插入非嵌入式图片
  await shapes.AddPicture({
    FileName:
      'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDABsSFBcUERsXFhceHBsgKEIrKCUlKFE6PTBCYFVlZF9VXVtqeJmBanGQc1tdhbWGkJ6jq62rZ4C8ybqmx5moq6T/2wBDARweHigjKE4rK06kbl1upKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKSkpKT/wAARCAAyADIDASIAAhEBAxEB/8QAGgAAAgMBAQAAAAAAAAAAAAAAAAQDBQYBAv/EADQQAAEDAgMEBwYHAAAAAAAAAAEAAgMEEQUhMRIiQVEGExQycaGxFWJygZHBIzM0QmFz8P/EABYBAQEBAAAAAAAAAAAAAAAAAAABAv/EABYRAQEBAAAAAAAAAAAAAAAAAAABEf/aAAwDAQACEQMRAD8A0hIAuSl2V9K+QxtqGOeOAKjxRsj8PqGxGz9g2z+qoMEwaaSds9QwtiG8A79yDQOxCla6xlBI5C/oj2jSg2L3N+Jjh6hTxtjj3GBrctALL3bJBAa+lazbM8Ybe19oKaORkjQ5jg4HQg3SdfhdPWsIewNdbJ4GYUGAQvpoJIHuu5khBHLIWQWyEIQJ4iSafq+Ej2sPgTn5JhtgAOFktiOUcTuDJWE+F10sncD+IGmzgLC/HIosmoaqmkfOJI9gG/eJzCml7S2GwO2T3i0eiWqBN1vdc9p03rWKjdJU07L1BkDCbB2RsgtId2MBxJ8UqHNixRw062MEfyQbfcIZ2h7Q4EC4bb65+SikDhXUd837T/kP9ZFsWiEIRktWyRRUkr5xeMNzHNZ+k6ROiaWyxGRoO6Q7eA4X5q5xunkqcNmjiF3ZG3Oxus3gdDJJiTOsiOzGbvDgguh0joHDf6xt/dXk49hwG8XvHAFiedhNA/vUsZ8BZDcHoG6UsfzCCtk6SxOdsU9M+QnTOy9YJW9pqZBUAtqRoDoByA4K5igihbsxRsYPdACpqaieekU9Q0WiZe55kjTzQXyEIQcOhScP66p+Bn3QhA4NF1CEAk6H82p/s+yEIHEIQg//2Q==',
    LinkToFile: 0,
    SaveWithDocument: -1,
    Left: 10, // 图片距离左边位置
    Top: 10, // 图片距离顶部位置
    Width: 120, // 图片宽度
    Height: 120 // 图片高度
  })
}

Item(Index)

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

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.Item(Index)

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

示例

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

  const app = instance.Application

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

  // 图形对象集合
  const shapes = await activeSheet.Shapes

  // 添加 300 * 300 的矩形
  await shapes.AddChart2(340, 51, 0, 0, 300, 300)

  // 获取最新的图形对象集合
  const newShapes = await activeSheet.Shapes

  // 单个图形对象
  const shape = await newShapes.Item(1)
}

Item().Chart

单个图表对象

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.Item(Index).Chart

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

示例

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

  const app = instance.Application

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

  // 图形对象
  const shapes = await activeSheet.Shapes

  // 单个图形对象
  const shape = await shapes.AddChart2(340, 51, 0, 0, 300, 300)

  // 单个图表对象
  const chart = await shape.Chart
}

Item().ID

单个图形 ID

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.Item(Index).ID

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

示例

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

  const app = instance.Application

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

  // 图形对象
  const shapes = await activeSheet.Shapes

  // 添加 300 * 300 的矩形
  const shape = await shapes.AddChart2(340, 51, 0, 0, 300, 300)

  // 获取图形 ID
  const id = await shape.ID
  console.log(id)
}

Item().ImageUrl

单个图形的图片下载链接

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.Item(Index).ImageUrl

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

示例

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

  const app = instance.Application

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

  // 图形对象
  const shapes = await activeSheet.Shapes

  // 单个图形对象
  const shape = await shapes.AddChart2(340, 51, 0, 0, 300, 300)

  // 单个图表对象
  const ImageUrl = await shape.ImageUrl
}

Item().Name

单个图形标题

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.Item(Index).Name

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

示例

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

  const app = instance.Application

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

  // 图形对象
  const shapes = await activeSheet.Shapes

  // 添加 300 * 300 的矩形
  const shape = await shapes.AddChart2(340, 51, 0, 0, 300, 300)

  // 获取图形名称
  const name = await shape.Name
  console.log(name)
}

Item().Title

单个图形标题

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.Item(Index).Title

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

示例

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

  const app = instance.Application

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

  // 图形对象
  const shapes = await activeSheet.Shapes

  // 添加 300 * 300 的矩形
  const shape = await shapes.AddChart2(340, 51, 0, 0, 300, 300)

  // 设置图形标题
  shape.Title = 'WebOffice'
}

Item().Delete()

删除单个图形

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.Item(Index).Delete()

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

示例

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

  const app = instance.Application

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

  // 图形对象
  const shapes = await activeSheet.Shapes

  // 单个图形对象
  const shape = await shapes.AddChart2(340, 51, 0, 0, 300, 300)

  // 获取图形数据源
  const source = await activeSheet.Range('A1:B4')

  // 设置图形数据源
  await shape.Chart.SetSourceData(source, 1)

  // 删除单个图形
  setTimeout(async () => {
    await shape.Delete()
  }, 3000)
}

Item().Select()

选择单个图形

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.Item(Index).Select()

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

示例

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

  const app = instance.Application

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

  // 图形对象
  const shapes = await activeSheet.Shapes

  // 单个图形对象
  const shape = await shapes.AddChart2(340, 51, 0, 0, 300, 300)

  // 获取图形数据源
  const source = await activeSheet.Range('A1:B4')

  // 设置图形数据源
  await shape.Chart.SetSourceData(source, 1)

  // 选择单个图形
  setTimeout(async () => {
    await shape.Select()
  }, 3000)
}

Item().SelectedModel

查询-选中的图形对象

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.Item(Index).SelectedModel

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

示例

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

  const app = instance.Application

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

  // 图形对象
  const shapes = await activeSheet.Shapes

  // 单个图形对象
  await shapes.AddChart2(340, 51, 0, 0, 300, 300)
  // 选中图形对象的ID
  const selectedModelObjID = await shapes.SelectedModel
  console.log(selectedModelObjID)
}

Item().SelectedModels

查询-选中的图形对象集合

语法

表达式.ActiveWorkbook.ActiveSheet.Shapes.Item(Index).SelectedModels

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

示例

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

  const app = instance.Application

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

  // 图形对象
  const shapes = await activeSheet.Shapes

  // 单个图形对象
  await shapes.AddChart2(340, 51, 0, 0, 300, 300)
  // 选中图形对象的名称集合
  const selectedModelsArr = await shapes.SelectedModels
  console.log(selectedModelsArr)
}