Поделиться через


Word.Document class

Объект Document — это объект верхнего уровня. Объект Document содержит один или несколько разделов, элементы управления контентом и основной текст с содержанием документа.

Extends

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-change-tracking.yaml

// Gets the current change tracking mode.
await Word.run(async (context) => {
  const document: Word.Document = context.document;
  document.load("changeTrackingMode");
  await context.sync();

  if (document.changeTrackingMode === Word.ChangeTrackingMode.trackMineOnly) {
    console.log("Only my changes are being tracked.");
  } else if (document.changeTrackingMode === Word.ChangeTrackingMode.trackAll) {
    console.log("Everyone's changes are being tracked.");
  } else {
    console.log("No changes are being tracked.");
  }
});

Свойства

body

Возвращает основной объект документа main. Текст — это текст, который исключает колонтитулы, сноски, текстовые поля и т. д.

changeTrackingMode

Указывает режим ChangeTracking.

contentControls

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

context

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

customXmlParts

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

properties

Возвращает свойства документа.

saved

Указывает, сохранены ли изменения, внесенные в документ. Значение true указывает на то, что с момента последнего сохранения в документ не вносились изменения.

sections

Возвращает коллекцию объектов section в документе.

settings

Возвращает параметры надстройки в документе.

Методы

addStyle(name, type)

Добавляет стиль в документ по имени и типу.

addStyle(name, typeString)

Добавляет стиль в документ по имени и типу.

close(closeBehavior)

Закрывает текущий документ.

Примечание. Этот API не поддерживается в Word в Интернете.

close(closeBehaviorString)

Закрывает текущий документ.

Примечание. Этот API не поддерживается в Word в Интернете.

compare(filePath, documentCompareOptions)

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

compareFromBase64(base64File, documentCompareOptions)

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

deleteBookmark(name)

Удаляет закладку, если она существует, из документа.

getAnnotationById(id)

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

getBookmarkRange(name)

Возвращает диапазон закладки. Выдает ошибку ItemNotFound , если закладка не существует.

getBookmarkRangeOrNullObject(name)

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

getContentControls(options)

Возвращает поддерживаемые элементы управления содержимым в документе.

getEndnoteBody()

Возвращает концевые сноски документа в одном тексте.

getFootnoteBody()

Возвращает сноски документа в одном тексте.

getParagraphByUniqueLocalId(id)

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

getSelection()

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

getStyles()

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

importStylesFromJson(stylesJson, importedStylesConflictBehavior)

Импорт стилей из строки в формате JSON.

importStylesFromJson(stylesJson, importedStylesConflictBehaviorString)

Импорт стилей из строки в формате JSON.

insertFileFromBase64(base64File, insertLocation, insertFileOptions)

Вставляет документ в целевой документ в определенном расположении с дополнительными свойствами. Верхние колонтитулы, водяные знаки и другие свойства разделов копируются по умолчанию.

load(options)

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

load(propertyNames)

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

load(propertyNamesAndPaths)

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

save(saveBehavior, fileName)

Сохраняет документ.

save(saveBehaviorString, fileName)

Сохраняет документ.

search(searchText, searchOptions)

Выполняет поиск с указанными параметрами поиска на область всего документа. Результат поиска — это коллекция объектов диапазона.

set(properties, options)

Задает несколько свойств объекта одновременно. Можно передать обычный объект с соответствующими свойствами или другой объект API того же типа.

set(properties)

Задает несколько свойств объекта одновременно на основе существующего загруженного объекта.

toJSON()

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

track()

Отслеживает объект для автоматической корректировки с учетом окружающих изменений в документе. Этот вызов является сокращением для context.trackedObjects.add(thisObject). Если вы используете этот объект в вызовах .sync и вне последовательного выполнения пакета .run и получаете ошибку InvalidObjectPath при задании свойства или вызове метода для объекта, необходимо добавить объект в отслеживаемую коллекцию объектов при первом создании объекта. Если этот объект является частью коллекции, следует также отслеживать родительскую коллекцию.

untrack()

Освобождает память, связанную с этим объектом, если он ранее отслеживался. Этот вызов является сокращенным для context.trackedObjects.remove(thisObject). Наличие большого количества отслеживаемых объектов замедляет ведущее приложение, поэтому не забывайте освобождать любые добавленные объекты после завершения их использования. Вызов потребуется выполнить context.sync() до того, как выпуск памяти вступит в силу.

События

onAnnotationClicked

Происходит, когда пользователь щелкает заметку (или выбирает ее с помощью клавиш ALT+ВНИЗ).

onAnnotationHovered

Происходит, когда пользователь навевает курсор на заметку.

onAnnotationInserted

Происходит, когда пользователь добавляет одну или несколько заметок.

onAnnotationPopupAction

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

onAnnotationRemoved

Происходит, когда пользователь удаляет одну или несколько заметок.

onContentControlAdded

Происходит при добавлении элемента управления содержимым. Запустите context.sync() в обработчике, чтобы получить свойства нового элемента управления содержимым.

onParagraphAdded

Происходит, когда пользователь добавляет новые абзацы.

onParagraphChanged

Происходит, когда пользователь изменяет абзацы.

onParagraphDeleted

Происходит, когда пользователь удаляет абзацы.

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

body

Возвращает основной объект документа main. Текст — это текст, который исключает колонтитулы, сноски, текстовые поля и т. д.

readonly body: Word.Body;

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

Комментарии

[ Набор API: WordApi 1.1 ]

changeTrackingMode

Указывает режим ChangeTracking.

changeTrackingMode: Word.ChangeTrackingMode | "Off" | "TrackAll" | "TrackMineOnly";

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

Word.ChangeTrackingMode | "Off" | "TrackAll" | "TrackMineOnly"

Комментарии

[ Набор API: WordApi 1.4 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-change-tracking.yaml

// Gets the current change tracking mode.
await Word.run(async (context) => {
  const document: Word.Document = context.document;
  document.load("changeTrackingMode");
  await context.sync();

  if (document.changeTrackingMode === Word.ChangeTrackingMode.trackMineOnly) {
    console.log("Only my changes are being tracked.");
  } else if (document.changeTrackingMode === Word.ChangeTrackingMode.trackAll) {
    console.log("Everyone's changes are being tracked.");
  } else {
    console.log("No changes are being tracked.");
  }
});

contentControls

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

readonly contentControls: Word.ContentControlCollection;

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

Комментарии

[ Набор API: WordApi 1.1 ]

context

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

context: RequestContext;

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

customXmlParts

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

readonly customXmlParts: Word.CustomXmlPartCollection;

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

Комментарии

[ Набор API: WordApi 1.4 ]

properties

Возвращает свойства документа.

readonly properties: Word.DocumentProperties;

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

Комментарии

[ Набор API: WordApi 1.3 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/30-properties/get-built-in-properties.yaml

await Word.run(async (context) => {
    const builtInProperties: Word.DocumentProperties = context.document.properties;
    builtInProperties.load("*"); // Let's get all!

    await context.sync();
    console.log(JSON.stringify(builtInProperties, null, 4));
});

saved

Указывает, сохранены ли изменения, внесенные в документ. Значение true указывает на то, что с момента последнего сохранения в документ не вносились изменения.

readonly saved: boolean;

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

boolean

Комментарии

[ Набор API: WordApi 1.1 ]

sections

Возвращает коллекцию объектов section в документе.

readonly sections: Word.SectionCollection;

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

Комментарии

[ Набор API: WordApi 1.1 ]

settings

Возвращает параметры надстройки в документе.

readonly settings: Word.SettingCollection;

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

Комментарии

[ Набор API: WordApi 1.4 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-settings.yaml

// Gets all custom settings this add-in set on this document.
await Word.run(async (context) => {
  const settings: Word.SettingCollection = context.document.settings;
  settings.load("items");
  await context.sync();

  if (settings.items.length == 0) {
    console.log("There are no settings.");
  } else {
    console.log("All settings:");
    for (let i = 0; i < settings.items.length; i++) {
      console.log(settings.items[i]);
    }
  }
});

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

addStyle(name, type)

Добавляет стиль в документ по имени и типу.

addStyle(name: string, type: Word.StyleType): Word.Style;

Параметры

name

string

Обязательно. Строка, представляющая имя стиля.

type
Word.StyleType

Обязательно. Тип стиля, включая символ, список, абзац или таблицу.

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

Комментарии

[ Набор API: WordApi 1.5 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-styles.yaml

// Adds a new style.
await Word.run(async (context) => {
  const newStyleName = $("#new-style-name").val() as string;
  if (newStyleName == "") {
    console.warn("Enter a style name to add.");
    return;
  }

  const style: Word.Style = context.document.getStyles().getByNameOrNullObject(newStyleName);
  style.load();
  await context.sync();

  if (!style.isNullObject) {
    console.warn(
      `There's an existing style with the same name '${newStyleName}'! Please provide another style name.`
    );
    return;
  }

  const newStyleType = ($("#new-style-type").val() as unknown) as Word.StyleType;
  context.document.addStyle(newStyleName, newStyleType);
  await context.sync();

  console.log(newStyleName + " has been added to the style list.");
});

addStyle(name, typeString)

Добавляет стиль в документ по имени и типу.

addStyle(name: string, typeString: "Character" | "List" | "Paragraph" | "Table"): Word.Style;

Параметры

name

string

Обязательно. Строка, представляющая имя стиля.

typeString

"Character" | "List" | "Paragraph" | "Table"

Обязательно. Тип стиля, включая символ, список, абзац или таблицу.

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

Комментарии

[ Набор API: WordApi 1.5 ]

close(closeBehavior)

Закрывает текущий документ.

Примечание. Этот API не поддерживается в Word в Интернете.

close(closeBehavior?: Word.CloseBehavior): void;

Параметры

closeBehavior
Word.CloseBehavior

Необязательный параметр. Поведение закрытия должно быть "Сохранить" или "SkipSave". Значение по умолчанию — "Сохранить".

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

void

Комментарии

[ Набор API: WordApi 1.5 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/save-close.yaml

// Closes the document with default behavior
// for current state of the document.
await Word.run(async (context) => {
  context.document.close();
});

close(closeBehaviorString)

Закрывает текущий документ.

Примечание. Этот API не поддерживается в Word в Интернете.

close(closeBehaviorString?: "Save" | "SkipSave"): void;

Параметры

closeBehaviorString

"Save" | "SkipSave"

Необязательный параметр. Поведение закрытия должно быть "Сохранить" или "SkipSave". Значение по умолчанию — "Сохранить".

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

void

Комментарии

[ Набор API: WordApi 1.5 ]

compare(filePath, documentCompareOptions)

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

compare(filePath: string, documentCompareOptions?: Word.DocumentCompareOptions): void;

Параметры

filePath

string

Обязательно. Путь к документу, с которым сравнивается указанный документ.

documentCompareOptions
Word.DocumentCompareOptions

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

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

void

Комментарии

[ Набор API: WordApiDesktop 1.1 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/compare-documents.yaml

// Compares the current document with a specified external document.
await Word.run(async (context) => {
  // Absolute path of an online or local document.
  const filePath = $("#filePath")
    .val()
    .toString();
  // Options that configure the compare operation.
  const options: Word.DocumentCompareOptions = {
    compareTarget: Word.CompareTarget.compareTargetCurrent,
    detectFormatChanges: false
    // Other options you choose...
    };
  context.document.compare(filePath, options);

  await context.sync();

  console.log("Differences shown in the current document.");
});

compareFromBase64(base64File, documentCompareOptions)

Примечание

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

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

compareFromBase64(base64File: string, documentCompareOptions?: Word.DocumentCompareOptions): void;

Параметры

base64File

string

Обязательно. Содержимое документа в кодировке Base64, с которым сравнивается указанный документ.

documentCompareOptions
Word.DocumentCompareOptions

Необязательный параметр. Дополнительные параметры, определяющие поведение для сравнения документов. Обратите внимание, что compareTarget параметр не может быть CompareTargetSelected в этом API.

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

void

Комментарии

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

deleteBookmark(name)

Удаляет закладку, если она существует, из документа.

deleteBookmark(name: string): void;

Параметры

name

string

Обязательно. Имя закладки без учета регистра.

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

void

Комментарии

[ Набор API: WordApi 1.4 ]

getAnnotationById(id)

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

getAnnotationById(id: string): Word.Annotation;

Параметры

id

string

Идентификатор получаемой заметки.

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

Комментарии

[ Набор API: WordApi 1.7 ]

getBookmarkRange(name)

Возвращает диапазон закладки. Выдает ошибку ItemNotFound , если закладка не существует.

getBookmarkRange(name: string): Word.Range;

Параметры

name

string

Обязательно. Имя закладки без учета регистра.

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

Комментарии

[ Набор API: WordApi 1.4 ]

getBookmarkRangeOrNullObject(name)

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

getBookmarkRangeOrNullObject(name: string): Word.Range;

Параметры

name

string

Обязательно. Имя закладки без учета регистра.

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

Комментарии

[ Набор API: WordApi 1.4 ]

getContentControls(options)

Возвращает поддерживаемые элементы управления содержимым в документе.

getContentControls(options?: Word.ContentControlOptions): Word.ContentControlCollection;

Параметры

options
Word.ContentControlOptions

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

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

Комментарии

[ Набор API: WordApi 1.5 ]

Важно! Если в параметре options указаны определенные типы, возвращаются только элементы управления содержимым поддерживаемых типов. Имейте в виду, что при использовании методов универсального Word будет создано исключение. ContentControl, который не относится к конкретному типу. Со временем могут поддерживаться дополнительные типы элементов управления содержимым. Поэтому надстройка должна запрашивать и обрабатывать определенные типы элементов управления содержимым.

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/10-content-controls/insert-and-change-checkbox-content-control.yaml

// Toggles the isChecked property on all checkbox content controls.
await Word.run(async (context) => {
  let contentControls = context.document.getContentControls({
    types: [Word.ContentControlType.checkBox]
  });
  contentControls.load("items");

  await context.sync();

  const length = contentControls.items.length;
  console.log(`Number of checkbox content controls: ${length}`);

  if (length <= 0) {
    return;
  }

  const checkboxContentControls = [];
  for (let i = 0; i < length; i++) {
    let contentControl = contentControls.items[i];
    contentControl.load("id,checkboxContentControl/isChecked");
    checkboxContentControls.push(contentControl);
  }

  await context.sync();

  console.log("isChecked state before:");
  const updatedCheckboxContentControls = [];
  for (let i = 0; i < checkboxContentControls.length; i++) {
    const currentCheckboxContentControl = checkboxContentControls[i];
    const isCheckedBefore = currentCheckboxContentControl.checkboxContentControl.isChecked;
    console.log(`id: ${currentCheckboxContentControl.id} ... isChecked: ${isCheckedBefore}`);

    currentCheckboxContentControl.checkboxContentControl.isChecked = !isCheckedBefore;
    currentCheckboxContentControl.load("id,checkboxContentControl/isChecked");
    updatedCheckboxContentControls.push(currentCheckboxContentControl);
  }

  await context.sync();

  console.log("isChecked state after:");
  for (let i = 0; i < updatedCheckboxContentControls.length; i++) {
    const currentCheckboxContentControl = updatedCheckboxContentControls[i];
    console.log(
      `id: ${currentCheckboxContentControl.id} ... isChecked: ${currentCheckboxContentControl.checkboxContentControl.isChecked}`
    );
  }
});

getEndnoteBody()

Возвращает концевые сноски документа в одном тексте.

getEndnoteBody(): Word.Body;

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

Комментарии

[ Набор API: WordApi 1.5 ]

getFootnoteBody()

Возвращает сноски документа в одном тексте.

getFootnoteBody(): Word.Body;

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

Комментарии

[ Набор API: WordApi 1.5 ]

getParagraphByUniqueLocalId(id)

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

getParagraphByUniqueLocalId(id: string): Word.Paragraph;

Параметры

id

string

Обязательно. Уникальный локальный идентификатор в стандартном формате GUID 8-4-4-12 без фигурных скобок. Обратите внимание, что идентификатор отличается в разных сеансах и соавторах.

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

Комментарии

[ Набор API: WordApi 1.6 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/25-paragraph/onadded-event.yaml

await Word.run(async (context) => {
  const paragraphId = $("#paragraph-id").val() as string;
  const paragraph: Word.Paragraph = context.document.getParagraphByUniqueLocalId(paragraphId);
  paragraph.load();
  await paragraph.context.sync();

  console.log(paragraph);
});

getSelection()

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

getSelection(): Word.Range;

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

Комментарии

[ Набор API: WordApi 1.1 ]

Примеры

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    const textSample = 'This is an example of the insert text method. This is a method ' + 
        'which allows users to insert text into a selection. It can insert text into a ' +
        'relative location or it can overwrite the current selection. Since the ' +
        'getSelection method returns a range object, look up the range object documentation ' +
        'for everything you can do with a selection.';
    
    // Create a range proxy object for the current selection.
    const range = context.document.getSelection();
    
    // Queue a command to insert text at the end of the selection.
    range.insertText(textSample, Word.InsertLocation.end);
    
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    console.log('Inserted the text at the end of the selection.');
});  

getStyles()

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

getStyles(): Word.StyleCollection;

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

Комментарии

[ Набор API: WordApi 1.5 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-styles.yaml

// Gets the number of available styles stored with the document.
await Word.run(async (context) => {
  const styles: Word.StyleCollection = context.document.getStyles();
  const count = styles.getCount();
  await context.sync();

  console.log(`Number of styles: ${count.value}`);
});

importStylesFromJson(stylesJson, importedStylesConflictBehavior)

Импорт стилей из строки в формате JSON.

importStylesFromJson(stylesJson: string, importedStylesConflictBehavior?: Word.ImportedStylesConflictBehavior): OfficeExtension.ClientResult<string[]>;

Параметры

stylesJson

string

Обязательно. Строка в формате JSON, представляющая стили.

importedStylesConflictBehavior
Word.ImportedStylesConflictBehavior

Необязательный параметр. Указывает, как обрабатывать импортированные стили с тем же именем, что и существующие стили в текущем документе.

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

Комментарии

[ Набор API: WordApi 1.6 ]

Примечание. Параметр importedStylesConflictBehavior появился в WordApiDesktop 1.1.

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/40-tables/manage-custom-style.yaml

// Imports styles from JSON.
await Word.run(async (context) => {
  const str =
    '{"styles":[{"baseStyle":"Default Paragraph Font","builtIn":false,"inUse":true,"linked":false,"nameLocal":"NewCharStyle","priority":2,"quickStyle":true,"type":"Character","unhideWhenUsed":false,"visibility":false,"paragraphFormat":null,"font":{"name":"DengXian Light","size":16.0,"bold":true,"italic":false,"color":"#F1A983","underline":"None","subscript":false,"superscript":true,"strikeThrough":true,"doubleStrikeThrough":false,"highlightColor":null,"hidden":false},"shading":{"backgroundPatternColor":"#FF0000"}},{"baseStyle":"Normal","builtIn":false,"inUse":true,"linked":false,"nextParagraphStyle":"NewParaStyle","nameLocal":"NewParaStyle","priority":1,"quickStyle":true,"type":"Paragraph","unhideWhenUsed":false,"visibility":false,"paragraphFormat":{"alignment":"Centered","firstLineIndent":0.0,"keepTogether":false,"keepWithNext":false,"leftIndent":72.0,"lineSpacing":18.0,"lineUnitAfter":0.0,"lineUnitBefore":0.0,"mirrorIndents":false,"outlineLevel":"OutlineLevelBodyText","rightIndent":72.0,"spaceAfter":30.0,"spaceBefore":30.0,"widowControl":true},"font":{"name":"DengXian","size":14.0,"bold":true,"italic":true,"color":"#8DD873","underline":"Single","subscript":false,"superscript":false,"strikeThrough":false,"doubleStrikeThrough":true,"highlightColor":null,"hidden":false},"shading":{"backgroundPatternColor":"#00FF00"}},{"baseStyle":"Table Normal","builtIn":false,"inUse":true,"linked":false,"nextParagraphStyle":"NewTableStyle","nameLocal":"NewTableStyle","priority":100,"type":"Table","unhideWhenUsed":false,"visibility":false,"paragraphFormat":{"alignment":"Left","firstLineIndent":0.0,"keepTogether":false,"keepWithNext":false,"leftIndent":0.0,"lineSpacing":12.0,"lineUnitAfter":0.0,"lineUnitBefore":0.0,"mirrorIndents":false,"outlineLevel":"OutlineLevelBodyText","rightIndent":0.0,"spaceAfter":0.0,"spaceBefore":0.0,"widowControl":true},"font":{"name":"DengXian","size":20.0,"bold":false,"italic":true,"color":"#D86DCB","underline":"None","subscript":false,"superscript":false,"strikeThrough":false,"doubleStrikeThrough":false,"highlightColor":null,"hidden":false},"tableStyle":{"allowBreakAcrossPage":true,"alignment":"Left","bottomCellMargin":0.0,"leftCellMargin":0.08,"rightCellMargin":0.08,"topCellMargin":0.0,"cellSpacing":0.0},"shading":{"backgroundPatternColor":"#60CAF3"}}]}';
  const styles = context.document.importStylesFromJson(str);
  await context.sync();
  console.log("Styles imported from JSON:", styles);
});

importStylesFromJson(stylesJson, importedStylesConflictBehaviorString)

Импорт стилей из строки в формате JSON.

importStylesFromJson(stylesJson: string, importedStylesConflictBehaviorString?: "Ignore" | "Overwrite" | "CreateNew"): OfficeExtension.ClientResult<string[]>;

Параметры

stylesJson

string

Обязательно. Строка в формате JSON, представляющая стили.

importedStylesConflictBehaviorString

"Ignore" | "Overwrite" | "CreateNew"

Необязательный параметр. Указывает, как обрабатывать импортированные стили с тем же именем, что и существующие стили в текущем документе.

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

Комментарии

[ Набор API: WordApi 1.6 ]

Примечание. Параметр importedStylesConflictBehavior появился в WordApiDesktop 1.1.

insertFileFromBase64(base64File, insertLocation, insertFileOptions)

Вставляет документ в целевой документ в определенном расположении с дополнительными свойствами. Верхние колонтитулы, водяные знаки и другие свойства разделов копируются по умолчанию.

insertFileFromBase64(base64File: string, insertLocation: Word.InsertLocation.replace | Word.InsertLocation.start | Word.InsertLocation.end | "Replace" | "Start" | "End", insertFileOptions?: Word.InsertFileOptions): Word.SectionCollection;

Параметры

base64File

string

Обязательно. Содержимое файла .docx в кодировке Base64.

insertLocation

replace | start | end | "Replace" | "Start" | "End"

Обязательно. Значение должно быть "Replace", "Start" или "End".

insertFileOptions
Word.InsertFileOptions

Необязательный параметр. Дополнительные свойства, которые должны быть импортированы в целевой документ.

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

Комментарии

[ Набор API: WordApi 1.5 ]

Примечание. Вставка не поддерживается, если вставляемый документ содержит элемент ActiveX (вероятно, в поле формы). Рассмотрите возможность замены такого поля формы элементом управления содержимым или другим вариантом, подходящим для вашего сценария.

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/insert-external-document.yaml

// Inserts content (applying selected settings) from another document passed in as a Base64-encoded string.
await Word.run(async (context) => {
  // Use the Base64-encoded string representation of the selected .docx file.
  context.document.insertFileFromBase64(externalDocument, "Replace", {
    importTheme: true,
    importStyles: true,
    importParagraphSpacing: true,
    importPageColor: true,
    importChangeTrackingMode: true,
    importCustomProperties: true,
    importCustomXmlParts: true,
    importDifferentOddEvenPages: true
  });
  await context.sync();
});

load(options)

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

load(options?: Word.Interfaces.DocumentLoadOptions): Word.Document;

Параметры

options
Word.Interfaces.DocumentLoadOptions

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

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

Примеры

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the document.
    const thisDocument = context.document;
    
    // Queue a command to load content control properties.
    thisDocument.load('contentControls/id, contentControls/text, contentControls/tag');
    
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
    if (thisDocument.contentControls.items.length !== 0) {
        for (let i = 0; i < thisDocument.contentControls.items.length; i++) {
            console.log(thisDocument.contentControls.items[i].id);
            console.log(thisDocument.contentControls.items[i].text);
            console.log(thisDocument.contentControls.items[i].tag);
        }
    } else {
        console.log('No content controls in this document.');
    }
});

load(propertyNames)

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

load(propertyNames?: string | string[]): Word.Document;

Параметры

propertyNames

string | string[]

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

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

load(propertyNamesAndPaths)

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

load(propertyNamesAndPaths?: {
            select?: string;
            expand?: string;
        }): Word.Document;

Параметры

propertyNamesAndPaths

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

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

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

save(saveBehavior, fileName)

Сохраняет документ.

save(saveBehavior?: Word.SaveBehavior, fileName?: string): void;

Параметры

saveBehavior
Word.SaveBehavior

Необязательный параметр. Поведение сохранения должно быть "Сохранить" или "Запрос". Значение по умолчанию — "Сохранить".

fileName

string

Необязательный параметр. Имя файла (расширение файла exclude). Вступает в силу только для нового документа.

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

void

Комментарии

[ Набор API: WordApi 1.1 ]

Примечание. Параметры saveBehavior и fileName появились в WordApi 1.5.

Примеры

// Run a batch operation against the Word object model.
await Word.run(async (context) => {
    
    // Create a proxy object for the document.
    const thisDocument = context.document;

    // Queue a command to load the document save state (on the saved property).
    thisDocument.load('saved');    
    
    // Synchronize the document state by executing the queued commands, 
    // and return a promise to indicate task completion.
    await context.sync();
        
    if (thisDocument.saved === false) {
        // Queue a command to save this document.
        thisDocument.save();
        
        // Synchronize the document state by executing the queued commands, 
        // and return a promise to indicate task completion.
        await context.sync();
        console.log('Saved the document');
    } else {
        console.log('The document has not changed since the last save.');
    }
});
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/save-close.yaml

// Saves the document with default behavior
// for current state of the document.
await Word.run(async (context) => {
  context.document.save();
  await context.sync();
});

save(saveBehaviorString, fileName)

Сохраняет документ.

save(saveBehaviorString?: "Save" | "Prompt", fileName?: string): void;

Параметры

saveBehaviorString

"Save" | "Prompt"

Необязательный параметр. Поведение сохранения должно быть "Сохранить" или "Запрос". Значение по умолчанию — "Сохранить".

fileName

string

Необязательный параметр. Имя файла (расширение файла exclude). Вступает в силу только для нового документа.

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

void

Комментарии

[ Набор API: WordApi 1.1 ]

Примечание. Параметры saveBehavior и fileName появились в WordApi 1.5.

search(searchText, searchOptions)

Выполняет поиск с указанными параметрами поиска на область всего документа. Результат поиска — это коллекция объектов диапазона.

search(searchText: string, searchOptions?: Word.SearchOptions | {
            ignorePunct?: boolean;
            ignoreSpace?: boolean;
            matchCase?: boolean;
            matchPrefix?: boolean;
            matchSuffix?: boolean;
            matchWholeWord?: boolean;
            matchWildcards?: boolean;
        }): Word.RangeCollection;

Параметры

searchText

string

searchOptions

Word.SearchOptions | { ignorePunct?: boolean; ignoreSpace?: boolean; matchCase?: boolean; matchPrefix?: boolean; matchSuffix?: boolean; matchWholeWord?: boolean; matchWildcards?: boolean; }

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

Комментарии

[ Набор API: WordApi 1.7 ]

set(properties, options)

Задает несколько свойств объекта одновременно. Можно передать обычный объект с соответствующими свойствами или другой объект API того же типа.

set(properties: Interfaces.DocumentUpdateData, options?: OfficeExtension.UpdateOptions): void;

Параметры

properties
Word.Interfaces.DocumentUpdateData

Объект JavaScript со свойствами, структурированными изоморфно по свойствам объекта, для которого вызывается метод .

options
OfficeExtension.UpdateOptions

Предоставляет возможность подавления ошибок, если объект свойств пытается задать какие-либо свойства, доступные только для чтения.

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

void

set(properties)

Задает несколько свойств объекта одновременно на основе существующего загруженного объекта.

set(properties: Word.Document): void;

Параметры

properties
Word.Document

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

void

toJSON()

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

toJSON(): Word.Interfaces.DocumentData;

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

track()

Отслеживает объект для автоматической корректировки с учетом окружающих изменений в документе. Этот вызов является сокращением для context.trackedObjects.add(thisObject). Если вы используете этот объект в вызовах .sync и вне последовательного выполнения пакета .run и получаете ошибку InvalidObjectPath при задании свойства или вызове метода для объекта, необходимо добавить объект в отслеживаемую коллекцию объектов при первом создании объекта. Если этот объект является частью коллекции, следует также отслеживать родительскую коллекцию.

track(): Word.Document;

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

untrack()

Освобождает память, связанную с этим объектом, если он ранее отслеживался. Этот вызов является сокращенным для context.trackedObjects.remove(thisObject). Наличие большого количества отслеживаемых объектов замедляет ведущее приложение, поэтому не забывайте освобождать любые добавленные объекты после завершения их использования. Вызов потребуется выполнить context.sync() до того, как выпуск памяти вступит в силу.

untrack(): Word.Document;

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

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

onAnnotationClicked

Происходит, когда пользователь щелкает заметку (или выбирает ее с помощью клавиш ALT+ВНИЗ).

readonly onAnnotationClicked: OfficeExtension.EventHandlers<Word.AnnotationClickedEventArgs>;

Тип события

Комментарии

[ Набор API: WordApi 1.7 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-annotations.yaml

// Registers event handlers.
await Word.run(async (context) => {
  eventContexts[0] = context.document.onParagraphAdded.add(paragraphChanged);
  eventContexts[1] = context.document.onParagraphChanged.add(paragraphChanged);

  eventContexts[2] = context.document.onAnnotationClicked.add(onClickedHandler);
  eventContexts[3] = context.document.onAnnotationHovered.add(onHoveredHandler);
  eventContexts[4] = context.document.onAnnotationInserted.add(onInsertedHandler);
  eventContexts[5] = context.document.onAnnotationRemoved.add(onRemovedHandler);
  eventContexts[6] = context.document.onAnnotationPopupAction.add(onPopupActionHandler);

  await context.sync();

  console.log("Event handlers registered.");
});

...

async function onClickedHandler(args: Word.AnnotationClickedEventArgs) {
  await Word.run(async (context) => {
    const annotation: Word.Annotation = context.document.getAnnotationById(args.id);
    annotation.load("critiqueAnnotation");

    await context.sync();

    console.log(`AnnotationClicked: ID ${args.id}:`, annotation.critiqueAnnotation.critique);
  });
}

onAnnotationHovered

Происходит, когда пользователь навевает курсор на заметку.

readonly onAnnotationHovered: OfficeExtension.EventHandlers<Word.AnnotationHoveredEventArgs>;

Тип события

Комментарии

[ Набор API: WordApi 1.7 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-annotations.yaml

// Registers event handlers.
await Word.run(async (context) => {
  eventContexts[0] = context.document.onParagraphAdded.add(paragraphChanged);
  eventContexts[1] = context.document.onParagraphChanged.add(paragraphChanged);

  eventContexts[2] = context.document.onAnnotationClicked.add(onClickedHandler);
  eventContexts[3] = context.document.onAnnotationHovered.add(onHoveredHandler);
  eventContexts[4] = context.document.onAnnotationInserted.add(onInsertedHandler);
  eventContexts[5] = context.document.onAnnotationRemoved.add(onRemovedHandler);
  eventContexts[6] = context.document.onAnnotationPopupAction.add(onPopupActionHandler);

  await context.sync();

  console.log("Event handlers registered.");
});

...

async function onHoveredHandler(args: Word.AnnotationHoveredEventArgs) {
  await Word.run(async (context) => {
    const annotation: Word.Annotation = context.document.getAnnotationById(args.id);
    annotation.load("critiqueAnnotation");

    await context.sync();

    console.log(`AnnotationHovered: ID ${args.id}:`, annotation.critiqueAnnotation.critique);
  });
}

onAnnotationInserted

Происходит, когда пользователь добавляет одну или несколько заметок.

readonly onAnnotationInserted: OfficeExtension.EventHandlers<Word.AnnotationInsertedEventArgs>;

Тип события

Комментарии

[ Набор API: WordApi 1.7 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-annotations.yaml

// Registers event handlers.
await Word.run(async (context) => {
  eventContexts[0] = context.document.onParagraphAdded.add(paragraphChanged);
  eventContexts[1] = context.document.onParagraphChanged.add(paragraphChanged);

  eventContexts[2] = context.document.onAnnotationClicked.add(onClickedHandler);
  eventContexts[3] = context.document.onAnnotationHovered.add(onHoveredHandler);
  eventContexts[4] = context.document.onAnnotationInserted.add(onInsertedHandler);
  eventContexts[5] = context.document.onAnnotationRemoved.add(onRemovedHandler);
  eventContexts[6] = context.document.onAnnotationPopupAction.add(onPopupActionHandler);

  await context.sync();

  console.log("Event handlers registered.");
});

...

async function onInsertedHandler(args: Word.AnnotationInsertedEventArgs) {
  await Word.run(async (context) => {
    const annotations = [];
    for (let i = 0; i < args.ids.length; i++) {
      let annotation: Word.Annotation = context.document.getAnnotationById(args.ids[i]);
      annotation.load("id,critiqueAnnotation");

      annotations.push(annotation);
    }

    await context.sync();

    for (let annotation of annotations) {
      console.log(`AnnotationInserted: ID ${annotation.id}:`, annotation.critiqueAnnotation.critique);
    }
  });
}

onAnnotationPopupAction

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

readonly onAnnotationPopupAction: OfficeExtension.EventHandlers<Word.AnnotationPopupActionEventArgs>;

Тип события

Комментарии

[ Набор API: WordApi 1.8 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-annotations.yaml

// Registers event handlers.
await Word.run(async (context) => {
  eventContexts[0] = context.document.onParagraphAdded.add(paragraphChanged);
  eventContexts[1] = context.document.onParagraphChanged.add(paragraphChanged);

  eventContexts[2] = context.document.onAnnotationClicked.add(onClickedHandler);
  eventContexts[3] = context.document.onAnnotationHovered.add(onHoveredHandler);
  eventContexts[4] = context.document.onAnnotationInserted.add(onInsertedHandler);
  eventContexts[5] = context.document.onAnnotationRemoved.add(onRemovedHandler);
  eventContexts[6] = context.document.onAnnotationPopupAction.add(onPopupActionHandler);

  await context.sync();

  console.log("Event handlers registered.");
});

...

async function onPopupActionHandler(args: Word.AnnotationPopupActionEventArgs) {
  await Word.run(async (context) => {
    let message = `AnnotationPopupAction: ID ${args.id} = `;
    if (args.action === "Accept") {
      message += `Accepted: ${args.critiqueSuggestion}`;
    } else {
      message += "Rejected";
    }

    console.log(message);
  });
}

onAnnotationRemoved

Происходит, когда пользователь удаляет одну или несколько заметок.

readonly onAnnotationRemoved: OfficeExtension.EventHandlers<Word.AnnotationRemovedEventArgs>;

Тип события

Комментарии

[ Набор API: WordApi 1.7 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/50-document/manage-annotations.yaml

// Registers event handlers.
await Word.run(async (context) => {
  eventContexts[0] = context.document.onParagraphAdded.add(paragraphChanged);
  eventContexts[1] = context.document.onParagraphChanged.add(paragraphChanged);

  eventContexts[2] = context.document.onAnnotationClicked.add(onClickedHandler);
  eventContexts[3] = context.document.onAnnotationHovered.add(onHoveredHandler);
  eventContexts[4] = context.document.onAnnotationInserted.add(onInsertedHandler);
  eventContexts[5] = context.document.onAnnotationRemoved.add(onRemovedHandler);
  eventContexts[6] = context.document.onAnnotationPopupAction.add(onPopupActionHandler);

  await context.sync();

  console.log("Event handlers registered.");
});

...

async function onRemovedHandler(args: Word.AnnotationRemovedEventArgs) {
  await Word.run(async (context) => {
    for (let id of args.ids) {
      console.log(`AnnotationRemoved: ID ${id}`);
    }
  });
}

onContentControlAdded

Происходит при добавлении элемента управления содержимым. Запустите context.sync() в обработчике, чтобы получить свойства нового элемента управления содержимым.

readonly onContentControlAdded: OfficeExtension.EventHandlers<Word.ContentControlAddedEventArgs>;

Тип события

Комментарии

[ Набор API: WordApi 1.5 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/10-content-controls/content-control-onadded-event.yaml

// Registers the onAdded event handler on the document.
await Word.run(async (context) => {
  eventContext = context.document.onContentControlAdded.add(contentControlAdded);
  await context.sync();

  console.log("Added event handler for when content controls are added.");
});

...

async function contentControlAdded(event: Word.ContentControlAddedEventArgs) {
  await Word.run(async (context) => {
    console.log(`${event.eventType} event detected. IDs of content controls that were added:`, event.ids);
  });
}

onParagraphAdded

Происходит, когда пользователь добавляет новые абзацы.

readonly onParagraphAdded: OfficeExtension.EventHandlers<Word.ParagraphAddedEventArgs>;

Тип события

Комментарии

[ Набор API: WordApi 1.6 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/25-paragraph/onadded-event.yaml

// Registers the onParagraphAdded event handler on the document.
await Word.run(async (context) => {
  eventContext = context.document.onParagraphAdded.add(paragraphAdded);
  await context.sync();

  console.log("Added event handler for when paragraphs are added.");
});

...

async function paragraphAdded(event: Word.ParagraphAddedEventArgs) {
  await Word.run(async (context) => {
    console.log(`${event.type} event detected. IDs of paragraphs that were added:`, event.uniqueLocalIds);
  });
}

onParagraphChanged

Происходит, когда пользователь изменяет абзацы.

readonly onParagraphChanged: OfficeExtension.EventHandlers<Word.ParagraphChangedEventArgs>;

Тип события

Комментарии

[ Набор API: WordApi 1.6 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/25-paragraph/onchanged-event.yaml

// Registers the onParagraphChanged event handler on the document.
await Word.run(async (context) => {
  eventContext = context.document.onParagraphChanged.add(paragraphChanged);
  await context.sync();

  console.log("Added event handler for when content is changed in paragraphs.");
});

...

async function paragraphChanged(event: Word.ParagraphChangedEventArgs) {
  await Word.run(async (context) => {
    console.log(`${event.type} event detected. IDs of paragraphs where content was changed:`, event.uniqueLocalIds);
  });
}

onParagraphDeleted

Происходит, когда пользователь удаляет абзацы.

readonly onParagraphDeleted: OfficeExtension.EventHandlers<Word.ParagraphDeletedEventArgs>;

Тип события

Комментарии

[ Набор API: WordApi 1.6 ]

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/word/25-paragraph/ondeleted-event.yaml

// Registers the onParagraphDeleted event handler on the document.
await Word.run(async (context) => {
  eventContext = context.document.onParagraphDeleted.add(paragraphDeleted);
  await context.sync();

  console.log("Added event handlers for when paragraphs are deleted.");
});

...

async function paragraphDeleted(event: Word.ParagraphDeletedEventArgs) {
  await Word.run(async (context) => {
    console.log(`${event.type} event detected. IDs of paragraphs that were deleted:`, event.uniqueLocalIds);
  });
}