PowerPoint.Presentation class

Объект Presentation — это объект верхнего уровня с одним или несколькими слайдами, содержащими содержимое презентации. Подробнее об объектной модели PowerPoint см. в статье Объектная модель JavaScript в PowerPoint.

Extends

Комментарии

Набор API: PowerPointApi 1.0

Используется

Примеры

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

await PowerPoint.run(async function(context) {
    // Get the ID of the first selected slide.
    const presentation: PowerPoint.Presentation = context.presentation;
    const selected: PowerPoint.Slide = presentation.getSelectedSlides().getItemAt(0);
    selected.load("id");
    await context.sync();

    // Insert the other presentation after the selected slide.
    const insertOptions: PowerPoint.InsertSlideOptions = {
        formatting: PowerPoint.InsertSlideFormatting.useDestinationTheme,
        targetSlideId: selected.id
    };
    presentation.insertSlidesFromBase64(chosenFileBase64, insertOptions);
    await context.sync();
});

Свойства

bindings

Возвращает коллекцию привязок, связанных с презентацией.

context

Контекст запроса, связанный с объектом. Это соединяет процесс надстройки с процессом основного приложения Office.

customXmlParts

Возвращает коллекцию настраиваемых фрагментов XML, связанных с презентацией.

id

Получает идентификатор презентации.

pageSetup

Возвращает сведения о настройке страницы, свойства которой управляют атрибутами настройки слайдов в презентации.

properties

Получает свойства презентации.

sensitivityLabel

Возвращает метку конфиденциальности презентации.

slideMasters

Возвращает набор SlideMaster объектов из презентации.

slides

Возвращает упорядоченную коллекцию слайдов в презентации.

tags

Возвращает коллекцию тегов, вложенных в презентацию.

title

Возвращает название презентации.

Методы

getActiveSlideOrNullObject()

Возвращает текущий активный слайд PowerPoint.Slide , видимый в области редактирования. Если активного слайда нет, возвращается объект со свойством isNullObject "Значение".true Дополнительные сведения см. в разделе Методы и свойства *OrNullObject.

getSelectedShapes()

Возвращает выбранные фигуры на текущем слайде презентации. Если фигуры не выбраны, возвращается пустая коллекция.

getSelectedSlides()

Возвращает выбранные слайды в текущем представлении презентации. Первый элемент в коллекции — это активный слайд, видимый в области редактирования. Если слайды не выбраны, возвращается пустая коллекция.

getSelectedTextRange()

Возвращает выбранный PowerPoint.TextRange в текущем представлении презентации. Если текст не выделен, создается исключение.

getSelectedTextRangeOrNullObject()

Возвращает выбранный PowerPoint.TextRange в текущем представлении презентации. Если текст не выделен, возвращается объект со свойством isNullObject " true Значение". Дополнительные сведения см. в разделе Методы и свойства *OrNullObject.

insertSlidesFromBase64(base64File, options)

Вставляет указанные слайды из презентации в текущую презентацию.

load(options)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

load(propertyNames)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

load(propertyNamesAndPaths)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

setSelectedSlides(slideIds)

Выбор слайдов в текущем представлении презентации. Существующий выбор слайда заменяется новым выделенным фрагментом.

toJSON()

Переопределяет метод JavaScript toJSON() , чтобы обеспечить более полезные выходные данные при передаче объекта API в JSON.stringify(). (JSON.stringify, в свою очередь, вызывает toJSON метод переданного ему объекта.) В то время как исходный PowerPoint.Presentation объект является объектом API, toJSON метод возвращает простой объект JavaScript (типизированный как PowerPoint.Interfaces.PresentationData), который содержит неглубокие копии любых загруженных дочерних свойств исходного объекта.

События

onSlideSelectionChanged

Возникает при изменении выделения слайдов в презентации. Это событие возникает, когда пользователь выбирает другой слайд или изменяет выбор слайдов. Это событие не возникает при изменении выделенного содержимого (например, фигур) на слайде.

Сведения о свойстве

bindings

Возвращает коллекцию привязок, связанных с презентацией.

readonly bindings: PowerPoint.BindingCollection;

Значение свойства

Комментарии

Набор API: PowerPointApi 1.8

Примеры

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

// Loads bindings.
await PowerPoint.run(async (context) => {
  const bindings = context.presentation.bindings;
  bindings.load("items");
  await context.sync();

  const bindingCount = bindings.items.length;
  if (bindingCount === 0) {
    console.log(`There are no bindings.`);
  } else if (bindingCount === 1) {
    console.log("There's 1 binding.");
  } else {
    console.log(`There are ${bindingCount} bindings.`);
  }

  bindings.items.forEach((binding) => {
    getShapeForBindingId(binding.id).then((shape) => {
      if (shape) {
        console.log(`Binding ID: ${binding.id} refers to shape ID ${shape.id}`);
      } else {
        console.log(`Binding ID: ${binding.id} doesn't refers to shape.`);
      }
    });
  });

  populateBindingsDropdown(bindings.items);
});

context

Контекст запроса, связанный с объектом. Это соединяет процесс надстройки с процессом основного приложения Office.

context: RequestContext;

Значение свойства

customXmlParts

Возвращает коллекцию настраиваемых фрагментов XML, связанных с презентацией.

readonly customXmlParts: PowerPoint.CustomXmlPartCollection;

Значение свойства

Комментарии

Набор API: PowerPointApi 1.7

id

Получает идентификатор презентации.

readonly id: string;

Значение свойства

string

Комментарии

Набор API: PowerPointApi 1.5

pageSetup

Возвращает сведения о настройке страницы, свойства которой управляют атрибутами настройки слайдов в презентации.

readonly pageSetup: PowerPoint.PageSetup;

Значение свойства

Комментарии

Набор API: PowerPointApi 1.10

properties

Получает свойства презентации.

readonly properties: PowerPoint.DocumentProperties;

Значение свойства

Комментарии

Набор API: PowerPointApi 1.7

sensitivityLabel

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Возвращает метку конфиденциальности презентации.

readonly sensitivityLabel: PowerPoint.SensitivityLabel;

Значение свойства

Комментарии

Набор API: PowerPointApi BETA (ТОЛЬКО ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ)

slideMasters

Возвращает набор SlideMaster объектов из презентации.

readonly slideMasters: PowerPoint.SlideMasterCollection;

Значение свойства

Комментарии

Набор API: PowerPointApi 1.3

slides

Возвращает упорядоченную коллекцию слайдов в презентации.

readonly slides: PowerPoint.SlideCollection;

Значение свойства

Комментарии

Набор API: PowerPointApi 1.2

tags

Возвращает коллекцию тегов, вложенных в презентацию.

readonly tags: PowerPoint.TagCollection;

Значение свойства

Комментарии

Набор API: PowerPointApi 1.3

title

Возвращает название презентации.

readonly title: string;

Значение свойства

string

Комментарии

Набор API: PowerPointApi 1.0

Сведения о методе

getActiveSlideOrNullObject()

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Возвращает текущий активный слайд PowerPoint.Slide , видимый в области редактирования. Если активного слайда нет, возвращается объект со свойством isNullObject "Значение".true Дополнительные сведения см. в разделе Методы и свойства *OrNullObject.

getActiveSlideOrNullObject(): PowerPoint.Slide;

Возвращаемое значение

Комментарии

Набор API: PowerPointApi BETA (ТОЛЬКО ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ)

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/preview-apis/presentation-get-active-slide.yaml

await PowerPoint.run(async (context) => {
  // Gets the active slide in the presentation.
  const slide: PowerPoint.Slide = context.presentation.getActiveSlideOrNullObject();
  slide.load("id");
  const activeSlideImage = slide.getImageAsBase64({ height: 200 });
  await context.sync();

  if (slide.isNullObject) {
    console.log("There are no slides in this presentation.");
    return;
  }

  console.log(`Active slide ID: ${slide.id}`);

  updateSlideImage(activeSlideImage.value);
});

getSelectedShapes()

Возвращает выбранные фигуры на текущем слайде презентации. Если фигуры не выбраны, возвращается пустая коллекция.

getSelectedShapes(): PowerPoint.ShapeScopedCollection;

Возвращаемое значение

Комментарии

Набор API: PowerPointApi 1.5

Примеры

// 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;
});

...

// Gets the shapes you selected on the slide and displays their IDs on the task pane.
await PowerPoint.run(async (context) => {
  let finalTable = "";
  const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes();
  const shapeCount = shapes.getCount();
  await context.sync();
  finalTable += "<br>getSelectedShapes.getCount returned:<b>" + shapeCount.value + "</b><br>";
  finalTable +=
    "<br><table border=1 cellpadding=3 cellspacing=0><tr><td bgcolor=#3333EE><font color=white>Index</font></td><td bgcolor=#3333EE><font color=white>Id</font></td></tr>";
  shapes.load("items");
  await context.sync();
  shapes.items.map((shape, index) => {
    finalTable += "<tr><td>" + index + "</td><td>" + shape.id + "</td></tr>";
  });
  finalTable += "</table>";
  const outputSpan = document.getElementById("outputSpan");
  outputSpan.innerHTML = "";
  outputSpan.innerHTML += finalTable;
});

...

// Saves which shapes are selected so that they can be reselected later.
await PowerPoint.run(async (context) => {
  context.presentation.load("slides");
  await context.sync();
  const slides: PowerPoint.SlideScopedCollection = context.presentation.getSelectedSlides();
  const slideCount = slides.getCount();
  slides.load("items");
  await context.sync();
  savedSlideSelection = [];
  slides.items.map((slide) => {
    savedSlideSelection.push(slide.id);
  });
  const shapes: PowerPoint.ShapeScopedCollection = context.presentation.getSelectedShapes();
  const shapeCount = shapes.getCount();
  shapes.load("items");
  await context.sync();
  shapes.items.map((shape) => {
    savedShapeSelection.push(shape.id);
  });
});

getSelectedSlides()

Возвращает выбранные слайды в текущем представлении презентации. Первый элемент в коллекции — это активный слайд, видимый в области редактирования. Если слайды не выбраны, возвращается пустая коллекция.

getSelectedSlides(): PowerPoint.SlideScopedCollection;

Возвращаемое значение

Комментарии

Набор API: PowerPointApi 1.5

Примеры

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

// Gets the selected slides and displays their IDs on the task pane.
await PowerPoint.run(async (context) => {
  let finalTable = "";
  context.presentation.load("slides");
  await context.sync();
  const allSlidesList = {};
  const allSlidesCount = context.presentation.slides.getCount();
  context.presentation.slides.load("items");
  await context.sync();
  let allSlideItems: PowerPoint.Slide[] = context.presentation.slides.items;
  allSlideItems.map((slide, index) => {
    allSlidesList[slide.id] = `Slide ${index + 1}`;
  });

  const checkbox = document.getElementById("id-check-usenative") as HTMLInputElement;
  if (checkbox && checkbox.checked) {
    context.presentation.load("tags");
  }

  const slides: PowerPoint.SlideScopedCollection = context.presentation.getSelectedSlides();
  const slideCount = slides.getCount();
  slides.load("items");
  await context.sync();
  finalTable += "<br>getSelectedSlides.getCount returned:<b>" + slideCount.value + "</b><br>";
  finalTable +=
    "<br><table border=1 cellpadding=3 cellspacing=0><tr><td bgcolor=#3333EE><font color=white>Index</font></td><td bgcolor=#3333EE><font color=white>Id</font></td></tr>";
  slides.items.map((slide, index) => {
    finalTable += "<tr><td>" + index + " - " + allSlidesList[slide.id] + "</td><td>" + slide.id + "</td></tr>";
  });
  finalTable += "</table>";
  const outputSpan = document.getElementById("outputSpan");
  outputSpan.innerHTML = ""
  outputSpan.innerHTML += finalTable;
});

...

// Saves which slides are currently selected so they can be reselected later.
await PowerPoint.run(async (context) => {
  let finalTable = "";
  context.presentation.load("slides");
  await context.sync();
  const slides: PowerPoint.SlideScopedCollection = context.presentation.getSelectedSlides();
  const slideCount = slides.getCount();
  await context.sync();
  finalTable += "<br>getSelectedSlides.getCount returned:<b>" + slideCount.value + "</b><br>";
  finalTable +=
    "<br><table border=1 cellpadding=3 cellspacing=0><tr><td bgcolor=#3333EE><font color=white>Index</font></td><td bgcolor=#3333EE><font color=white>Id</font></td></tr>";
  savedSlideSelection = [];
  slides.load("items");
  await context.sync();
  slides.items.map((slide, index) => {
    finalTable += "<tr><td>" + index + "</td><td>" + slide.id + "</td></tr>";
    savedSlideSelection.push(slide.id);
  });
  finalTable += "</table>";
  const outputSpan = document.getElementById("outputSpan");
  outputSpan.innerHTML = ""
  outputSpan.innerHTML += finalTable;
});

getSelectedTextRange()

Возвращает выбранный PowerPoint.TextRange в текущем представлении презентации. Если текст не выделен, создается исключение.

getSelectedTextRange(): PowerPoint.TextRange;

Возвращаемое значение

Комментарии

Набор API: PowerPointApi 1.5

Примеры

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

// Gets the selected text range and prints data about the range on the task pane.
await PowerPoint.run(async (context) => {
  const textRange: PowerPoint.TextRange = context.presentation.getSelectedTextRange();
  try {
    await context.sync();
  } catch (error) {
    console.warn("You must select only one range of text for this action to work.");
    return;
  }
  textRange.load("text");
  textRange.load("start");
  textRange.load("length");
  await context.sync();
  let txtHtml = textRange.text;
  txtHtml = txtHtml.replace(/\n/g, "<br>");
  txtHtml = txtHtml.replace(/\r/g, "<br>");
  txtHtml = txtHtml.replace(/\v/g, "<br>");
  let txtExplained = textRange.text;
  txtExplained = txtExplained.replace(/\n/g, "<font color=red>NL</font>");
  txtExplained = txtExplained.replace(/\r/g, "<font color=red>CR</font>");
  txtExplained = txtExplained.replace(/\v/g, "<font color=red>VV</font>");
  let finalTable = "";
  finalTable +=
    "<table border=1 cellpadding=3 cellspacing=0><tr><td bgcolor=#3333EE><font color=white>Index</font></td><td bgcolor=#3333EE><font color=white>Id</font></td></tr>";
  finalTable += "<tr><td>Raw</td><td>" + textRange.text + "</td></tr>";
  finalTable += "<tr><td>Html</td><td>" + txtHtml + "</td></tr>";
  finalTable += "<tr><td>Exp</td><td>" + txtExplained + "</td></tr>";
  finalTable += "<tr><td>Start</td><td>" + textRange.start + "</td></tr>";
  finalTable += "<tr><td>Length</td><td>" + textRange.length + "</td></tr>";
  finalTable += "</table>";
  const outputSpan = document.getElementById("outputSpan");
  outputSpan.innerHTML = "";
  outputSpan.innerHTML += finalTable;
});

...

// Sets the range selection to the range that was saved previously.
await PowerPoint.run(async (context) => {
  const slide1: PowerPoint.Slide = context.presentation.slides.getItem(savedTextSlideSelection[0]);
  const shape1: PowerPoint.Shape = slide1.shapes.getItem(savedTextShapeSelection[0]);
  const textRange: PowerPoint.TextRange = shape1.textFrame.textRange.getSubstring(
    savedTextTextRangeStart,
    savedTextTextRangeLength,
  );
  textRange.setSelected();
  await context.sync();
});

getSelectedTextRangeOrNullObject()

Возвращает выбранный PowerPoint.TextRange в текущем представлении презентации. Если текст не выделен, возвращается объект со свойством isNullObject " true Значение". Дополнительные сведения см. в разделе Методы и свойства *OrNullObject.

getSelectedTextRangeOrNullObject(): PowerPoint.TextRange;

Возвращаемое значение

Комментарии

Набор API: PowerPointApi 1.5

insertSlidesFromBase64(base64File, options)

Вставляет указанные слайды из презентации в текущую презентацию.

insertSlidesFromBase64(base64File: string, options?: PowerPoint.InsertSlideOptions): void;

Параметры

base64File

string

Строка в кодировке Base64, представляющая исходный файл презентации.

options
PowerPoint.InsertSlideOptions

Параметры, определяющие, какие слайды будут вставлены, куда будут добавлены новые слайды и какое форматирование презентации будет использоваться.

Возвращаемое значение

void

Комментарии

Набор API: PowerPointApi 1.2

Примеры

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

await PowerPoint.run(async function(context) {
    // Get the ID of the first selected slide.
    const presentation: PowerPoint.Presentation = context.presentation;
    const selected: PowerPoint.Slide = presentation.getSelectedSlides().getItemAt(0);
    selected.load("id");
    await context.sync();

    // Insert the other presentation after the selected slide.
    const insertOptions: PowerPoint.InsertSlideOptions = {
        formatting: PowerPoint.InsertSlideFormatting.useDestinationTheme,
        targetSlideId: selected.id
    };
    presentation.insertSlidesFromBase64(chosenFileBase64, insertOptions);
    await context.sync();
});

load(options)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

load(options?: PowerPoint.Interfaces.PresentationLoadOptions): PowerPoint.Presentation;

Параметры

options
PowerPoint.Interfaces.PresentationLoadOptions

Предоставляет параметры для загружаемых свойств объекта.

Возвращаемое значение

load(propertyNames)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

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

Параметры

propertyNames

string | string[]

Строка с разделителями-запятыми или массив строк, которые определяют свойства для загрузки.

Возвращаемое значение

load(propertyNamesAndPaths)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

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

Параметры

propertyNamesAndPaths

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

propertyNamesAndPaths.select — это строка с разделителями-запятыми, указывающая загружаемые свойства, и строка propertyNamesAndPaths.expand через запятую, указывающая свойства навигации для загрузки.

Возвращаемое значение

setSelectedSlides(slideIds)

Выбор слайдов в текущем представлении презентации. Существующий выбор слайда заменяется новым выделенным фрагментом.

setSelectedSlides(slideIds: string[]): void;

Параметры

slideIds

string[]

Список идентификаторов слайдов для выбора в презентации. Если список пуст, выделение снимается.

Возвращаемое значение

void

Комментарии

Набор API: PowerPointApi 1.5

Примеры

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

// Sets selection to the slides that were saved.
await PowerPoint.run(async (context) => {
  context.presentation.setSelectedSlides(savedSlideSelection);
  await context.sync();
});

...

// Selects slides 2, 4, and 5.
await PowerPoint.run(async (context) => {
  context.presentation.load("slides");
  await context.sync();
  const slide2: PowerPoint.Slide = context.presentation.slides.getItemAt(1);
  const slide4: PowerPoint.Slide = context.presentation.slides.getItemAt(3);
  const slide5: PowerPoint.Slide = context.presentation.slides.getItemAt(4);
  slide2.load("id");
  slide4.load("id");
  slide5.load("id");
  try {
    await context.sync();
  } catch (error) {
    console.warn("This action requires at least 5 slides in the presentation.");
    return;
  }
  await context.sync();
  context.presentation.setSelectedSlides([slide2.id, slide4.id, slide5.id]);
  await context.sync();
});

toJSON()

Переопределяет метод JavaScript toJSON() , чтобы обеспечить более полезные выходные данные при передаче объекта API в JSON.stringify(). (JSON.stringify, в свою очередь, вызывает toJSON метод переданного ему объекта.) В то время как исходный PowerPoint.Presentation объект является объектом API, toJSON метод возвращает простой объект JavaScript (типизированный как PowerPoint.Interfaces.PresentationData), который содержит неглубокие копии любых загруженных дочерних свойств исходного объекта.

toJSON(): PowerPoint.Interfaces.PresentationData;

Возвращаемое значение

Сведения о событии

onSlideSelectionChanged

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Возникает при изменении выделения слайдов в презентации. Это событие возникает, когда пользователь выбирает другой слайд или изменяет выбор слайдов. Это событие не возникает при изменении выделенного содержимого (например, фигур) на слайде.

readonly onSlideSelectionChanged: OfficeExtension.EventHandlers<PowerPoint.SlideSelectionChangedEventArgs>;

Тип события

Комментарии

Набор API: PowerPointApi BETA (ТОЛЬКО ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ)