PowerPoint.Shape class

表示幻灯片中的单个形状。

扩展

注解

[ API 集:PowerPointApi 1.3 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/get-shapes-by-type.yaml

// Changes the transparency of every geometric shape in the slide.
await PowerPoint.run(async (context) => {
  // Get the type of shape for every shape in the collection.
  const shapes: PowerPoint.ShapeCollection = context.presentation.slides.getItemAt(0).shapes;
  shapes.load("type");
  await context.sync();

  // Change the shape transparency to be halfway transparent.
  shapes.items.forEach((shape) => {
    if (shape.type === PowerPoint.ShapeType.geometricShape) {
      shape.fill.transparency = 0.5;
    }
  });
  await context.sync();
});

属性

context

与 对象关联的请求上下文。 这会将加载项的进程连接到 Office 主机应用程序的进程。

customXmlParts

返回形状中的自定义 XML 部件的集合。

fill

返回此形状的填充格式。

group

返回 ShapeGroup 与形状关联的 。 如果形状类型不是 group,则此方法返回 GeneralException 错误。

height

指定形状的高度(以磅为单位)。 InvalidArgument使用负值设置时引发异常。

id

获取形状的唯一 ID。

left

从形状左侧到幻灯片左侧的距离(以磅为单位)。

level

返回指定形状的级别。

  • 级别为 0 表示形状不是组的一部分。

  • 级别为 1 表示形状是顶级组的一部分。

  • 大于 1 的级别指示形状是嵌套组。

lineFormat

返回此形状的线条格式。

name

指定此形状的名称。

parentGroup

返回此形状的父组。 如果形状不是组的一部分,则此方法返回 GeneralException 错误。

placeholderFormat

返回专门应用于此占位符的属性。 如果形状类型不是 placeholder,则此方法返回 GeneralException 错误。

tags

返回形状中的标记的集合。

textFrame

返回此形状的文本框对象。

top

从形状的上边缘到幻灯片上边缘的距离(以磅为单位)。

type

返回此形状的类型。 有关详细信息,请参阅 PowerPoint.ShapeType

width

指定形状的宽度(以磅为单位)。 InvalidArgument使用负值设置时引发异常。

方法

delete()

从形状集合中删除形状。 如果形状不存在,则不执行任何工作。

getParentSlide()

返回包含此 Shape的父 PowerPoint.Slide 对象。 如果此形状不属于 , Slide则引发异常。

getParentSlideLayout()

返回包含此 Shape的父 PowerPoint.SlideLayout 对象。 如果此形状不属于 , SlideLayout则引发异常。

getParentSlideLayoutOrNullObject()

返回包含此 Shape的父 PowerPoint.SlideLayout 对象。 如果此形状不属于 SlideLayoutisNullObject 则返回属性设置为 true 的对象。

getParentSlideMaster()

返回包含此 Shape的父 PowerPoint.SlideMaster 对象。 如果此形状不属于 , SlideMaster则引发异常。

getParentSlideMasterOrNullObject()

返回包含此 Shape的父 PowerPoint.SlideMaster 对象。 如果此形状不属于 SlideMasterisNullObject 则返回属性设置为 true 的对象。

getParentSlideOrNullObject()

返回包含此 Shape的父 PowerPoint.Slide 对象。 如果此形状不属于 SlideisNullObject 则返回属性设置为 true 的对象。

load(options)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(propertyNames)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(propertyNamesAndPaths)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

toJSON()

重写 JavaScript toJSON() 方法,以便在将 API 对象传递给 JSON.stringify()时提供更有用的输出。 JSON.stringify (,依次调用toJSON传递给它的 对象的 方法。) 虽然原始PowerPoint.Shape对象是 API 对象,toJSON但该方法返回一个纯 JavaScript 对象, (类型为 PowerPoint.Interfaces.ShapeData) ,其中包含从原始对象加载的任何子属性的浅表副本。

属性详细信息

context

与 对象关联的请求上下文。 这会将加载项的进程连接到 Office 主机应用程序的进程。

context: RequestContext;

属性值

customXmlParts

返回形状中的自定义 XML 部件的集合。

readonly customXmlParts: PowerPoint.CustomXmlPartCollection;

属性值

注解

[ API 集:PowerPointApi 1.7 ]

fill

返回此形状的填充格式。

readonly fill: PowerPoint.ShapeFill;

属性值

注解

[ API 集:PowerPointApi 1.4 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/get-set-shapes.yaml

// Changes the selected shapes fill color to red.
await PowerPoint.run(async (context) => {
  const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes();
  const shapeCount = shapes.getCount();
  shapes.load("items");
  await context.sync();
  shapes.items.map((shape) => {
    shape.fill.setSolidColor("red");
  });
  await context.sync();
});

group

注意

此 API 以预览状态提供给开发者,可能根据我们收到的反馈更改。 请勿在生产环境中使用此 API。

返回 ShapeGroup 与形状关联的 。 如果形状类型不是 group,则此方法返回 GeneralException 错误。

readonly group: PowerPoint.ShapeGroup;

属性值

注解

[ API 集:PowerPointApi BETA (仅预览版) ]

height

指定形状的高度(以磅为单位)。 InvalidArgument使用负值设置时引发异常。

height: number;

属性值

number

注解

[ API 集:PowerPointApi 1.4 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/get-set-shapes.yaml

// Arranges the selected shapes in a line from left to right.
await PowerPoint.run(async (context) => {
  const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes();
  const shapeCount = shapes.getCount();
  shapes.load("items");
  await context.sync();
  let maxHeight = 0;
  shapes.items.map((shape) => {
    shape.load("width,height");
  });
  await context.sync();
  shapes.items.map((shape) => {
    shape.left = currentLeft;
    shape.top = currentTop;
    currentLeft += shape.width;
    if (shape.height > maxHeight) maxHeight = shape.height;
  });
  await context.sync();
  currentLeft = 0;
  if (currentTop > slideHeight - 200) currentTop = 0;
});

id

获取形状的唯一 ID。

readonly id: string;

属性值

string

注解

[ API 集:PowerPointApi 1.3 ]

left

从形状左侧到幻灯片左侧的距离(以磅为单位)。

left: number;

属性值

number

注解

[ API 集:PowerPointApi 1.4 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/get-set-shapes.yaml

// Arranges the selected shapes in a line from left to right.
await PowerPoint.run(async (context) => {
  const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes();
  const shapeCount = shapes.getCount();
  shapes.load("items");
  await context.sync();
  let maxHeight = 0;
  shapes.items.map((shape) => {
    shape.load("width,height");
  });
  await context.sync();
  shapes.items.map((shape) => {
    shape.left = currentLeft;
    shape.top = currentTop;
    currentLeft += shape.width;
    if (shape.height > maxHeight) maxHeight = shape.height;
  });
  await context.sync();
  currentLeft = 0;
  if (currentTop > slideHeight - 200) currentTop = 0;
});

level

注意

此 API 以预览状态提供给开发者,可能根据我们收到的反馈更改。 请勿在生产环境中使用此 API。

返回指定形状的级别。

  • 级别为 0 表示形状不是组的一部分。

  • 级别为 1 表示形状是顶级组的一部分。

  • 大于 1 的级别指示形状是嵌套组。

readonly level: number;

属性值

number

注解

[ API 集:PowerPointApi BETA (仅预览版) ]

lineFormat

返回此形状的线条格式。

readonly lineFormat: PowerPoint.ShapeLineFormat;

属性值

注解

[ API 集:PowerPointApi 1.4 ]

name

指定此形状的名称。

name: string;

属性值

string

注解

[ API 集:PowerPointApi 1.4 ]

parentGroup

注意

此 API 以预览状态提供给开发者,可能根据我们收到的反馈更改。 请勿在生产环境中使用此 API。

返回此形状的父组。 如果形状不是组的一部分,则此方法返回 GeneralException 错误。

readonly parentGroup: PowerPoint.Shape;

属性值

注解

[ API 集:PowerPointApi BETA (仅预览版) ]

placeholderFormat

注意

此 API 以预览状态提供给开发者,可能根据我们收到的反馈更改。 请勿在生产环境中使用此 API。

返回专门应用于此占位符的属性。 如果形状类型不是 placeholder,则此方法返回 GeneralException 错误。

readonly placeholderFormat: PowerPoint.PlaceholderFormat;

属性值

注解

[ API 集:PowerPointApi BETA (仅预览版) ]

tags

返回形状中的标记的集合。

readonly tags: PowerPoint.TagCollection;

属性值

注解

[ API 集:PowerPointApi 1.3 ]

textFrame

返回此形状的文本框对象。

readonly textFrame: PowerPoint.TextFrame;

属性值

注解

[ API 集:PowerPointApi 1.4 ]

top

从形状的上边缘到幻灯片上边缘的距离(以磅为单位)。

top: number;

属性值

number

注解

[ API 集:PowerPointApi 1.4 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/get-set-shapes.yaml

// Arranges the selected shapes in a line from left to right.
await PowerPoint.run(async (context) => {
  const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes();
  const shapeCount = shapes.getCount();
  shapes.load("items");
  await context.sync();
  let maxHeight = 0;
  shapes.items.map((shape) => {
    shape.load("width,height");
  });
  await context.sync();
  shapes.items.map((shape) => {
    shape.left = currentLeft;
    shape.top = currentTop;
    currentLeft += shape.width;
    if (shape.height > maxHeight) maxHeight = shape.height;
  });
  await context.sync();
  currentLeft = 0;
  if (currentTop > slideHeight - 200) currentTop = 0;
});

type

返回此形状的类型。 有关详细信息,请参阅 PowerPoint.ShapeType

readonly type: PowerPoint.ShapeType | "Unsupported" | "Image" | "GeometricShape" | "Group" | "Line" | "Table" | "Callout" | "Chart" | "ContentApp" | "Diagram" | "Freeform" | "Graphic" | "Ink" | "Media" | "Model3D" | "Ole" | "Placeholder" | "SmartArt" | "TextBox";

属性值

PowerPoint.ShapeType | "Unsupported" | "Image" | "GeometricShape" | "Group" | "Line" | "Table" | "Callout" | "Chart" | "ContentApp" | "Diagram" | "Freeform" | "Graphic" | "Ink" | "Media" | "Model3D" | "Ole" | "Placeholder" | "SmartArt" | "TextBox"

注解

[ API 集:PowerPointApi 1.4 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/get-shapes-by-type.yaml

// Changes the transparency of every geometric shape in the slide.
await PowerPoint.run(async (context) => {
  // Get the type of shape for every shape in the collection.
  const shapes: PowerPoint.ShapeCollection = context.presentation.slides.getItemAt(0).shapes;
  shapes.load("type");
  await context.sync();

  // Change the shape transparency to be halfway transparent.
  shapes.items.forEach((shape) => {
    if (shape.type === PowerPoint.ShapeType.geometricShape) {
      shape.fill.transparency = 0.5;
    }
  });
  await context.sync();
});

width

指定形状的宽度(以磅为单位)。 InvalidArgument使用负值设置时引发异常。

width: number;

属性值

number

注解

[ API 集:PowerPointApi 1.4 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/get-set-shapes.yaml

// Arranges the selected shapes in a line from left to right.
await PowerPoint.run(async (context) => {
  const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes();
  const shapeCount = shapes.getCount();
  shapes.load("items");
  await context.sync();
  let maxHeight = 0;
  shapes.items.map((shape) => {
    shape.load("width,height");
  });
  await context.sync();
  shapes.items.map((shape) => {
    shape.left = currentLeft;
    shape.top = currentTop;
    currentLeft += shape.width;
    if (shape.height > maxHeight) maxHeight = shape.height;
  });
  await context.sync();
  currentLeft = 0;
  if (currentTop > slideHeight - 200) currentTop = 0;
});

方法详细信息

delete()

从形状集合中删除形状。 如果形状不存在,则不执行任何工作。

delete(): void;

返回

void

注解

[ API 集:PowerPointApi 1.3 ]

示例

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/shapes/shapes.yaml

// This function gets the collection of shapes on the first slide,
// and then iterates through them, deleting each one.
await PowerPoint.run(async (context) => {
  const slide: PowerPoint.Slide = context.presentation.slides.getItemAt(0);
  const shapes: PowerPoint.ShapeCollection = slide.shapes;

  // Load all the shapes in the collection without loading their properties.
  shapes.load("items/$none");

  await context.sync();

  shapes.items.forEach((shape) => shape.delete());

  await context.sync();
});

getParentSlide()

返回包含此 Shape的父 PowerPoint.Slide 对象。 如果此形状不属于 , Slide则引发异常。

getParentSlide(): PowerPoint.Slide;

返回

注解

[ API 集:PowerPointApi 1.5 ]

getParentSlideLayout()

返回包含此 Shape的父 PowerPoint.SlideLayout 对象。 如果此形状不属于 , SlideLayout则引发异常。

getParentSlideLayout(): PowerPoint.SlideLayout;

返回

注解

[ API 集:PowerPointApi 1.5 ]

getParentSlideLayoutOrNullObject()

返回包含此 Shape的父 PowerPoint.SlideLayout 对象。 如果此形状不属于 SlideLayoutisNullObject 则返回属性设置为 true 的对象。

getParentSlideLayoutOrNullObject(): PowerPoint.SlideLayout;

返回

注解

[ API 集:PowerPointApi 1.5 ]

getParentSlideMaster()

返回包含此 Shape的父 PowerPoint.SlideMaster 对象。 如果此形状不属于 , SlideMaster则引发异常。

getParentSlideMaster(): PowerPoint.SlideMaster;

返回

注解

[ API 集:PowerPointApi 1.5 ]

getParentSlideMasterOrNullObject()

返回包含此 Shape的父 PowerPoint.SlideMaster 对象。 如果此形状不属于 SlideMasterisNullObject 则返回属性设置为 true 的对象。

getParentSlideMasterOrNullObject(): PowerPoint.SlideMaster;

返回

注解

[ API 集:PowerPointApi 1.5 ]

getParentSlideOrNullObject()

返回包含此 Shape的父 PowerPoint.Slide 对象。 如果此形状不属于 SlideisNullObject 则返回属性设置为 true 的对象。

getParentSlideOrNullObject(): PowerPoint.Slide;

返回

注解

[ API 集:PowerPointApi 1.5 ]

load(options)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(options?: PowerPoint.Interfaces.ShapeLoadOptions): PowerPoint.Shape;

参数

options
PowerPoint.Interfaces.ShapeLoadOptions

提供要加载对象的属性的选项。

返回

load(propertyNames)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(propertyNames?: string | string[]): PowerPoint.Shape;

参数

propertyNames

string | string[]

逗号分隔的字符串或指定要加载的属性的字符串数组。

返回

load(propertyNamesAndPaths)

将命令加入队列以加载对象的指定属性。 阅读属性前必须先调用 context.sync()

load(propertyNamesAndPaths?: {
            select?: string;
            expand?: string;
        }): PowerPoint.Shape;

参数

propertyNamesAndPaths

{ select?: string; expand?: string; }

propertyNamesAndPaths.select 是一个逗号分隔的字符串,指定要加载的属性,是 propertyNamesAndPaths.expand 一个逗号分隔的字符串,指定要加载的导航属性。

返回

toJSON()

重写 JavaScript toJSON() 方法,以便在将 API 对象传递给 JSON.stringify()时提供更有用的输出。 JSON.stringify (,依次调用toJSON传递给它的 对象的 方法。) 虽然原始PowerPoint.Shape对象是 API 对象,toJSON但该方法返回一个纯 JavaScript 对象, (类型为 PowerPoint.Interfaces.ShapeData) ,其中包含从原始对象加载的任何子属性的浅表副本。

toJSON(): PowerPoint.Interfaces.ShapeData;

返回