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


Office.Document interface

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

Комментарии

Приложения: Excel, PowerPoint, Project, Word

Примеры

// Get the Document object with the Common APIs.
const document : Office.Document = Office.context.document;

Свойства

bindings

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

customXmlParts

Получает объект, представляющий настраиваемые XML-части в документе.

mode

Получает режим, в котором находится документ.

settings

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

url

Возвращает URL-адрес документа, открытого в настоящее время приложением Office. Возвращает значение NULL, если URL-адрес недоступен.

Методы

addHandlerAsync(eventType, handler, options, callback)

Добавляет обработчик событий для события объекта Document.

addHandlerAsync(eventType, handler, callback)

Добавляет обработчик событий для события объекта Document.

getActiveViewAsync(options, callback)

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

getActiveViewAsync(callback)

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

getFileAsync(fileType, options, callback)

Возвращает полный файл документа по фрагментам размером до 4194304 байт (4 МБ). Для надстроек на iPad поддерживается срез файла размером до 65536 (64 КБ). Обратите внимание, что если указать размер фрагмента выше допустимого, возникнет сбой "Внутренняя ошибка".

getFileAsync(fileType, callback)

Возвращает полный файл документа по фрагментам размером до 4194304 байт (4 МБ). Для надстроек на iPad поддерживается срез файла размером до 65536 (64 КБ). Обратите внимание, что если указать размер фрагмента выше допустимого, возникнет сбой "Внутренняя ошибка".

getFilePropertiesAsync(options, callback)

Получает свойства текущего документа.

getFilePropertiesAsync(callback)

Получает свойства текущего документа.

getMaxResourceIndexAsync(options, callback)

Только документы проекта. Получение максимального индекса коллекции ресурсов в текущем проекте.

Важно! Этот API работает только в Project на рабочем столе Windows.

getMaxResourceIndexAsync(callback)

Только документы проекта. Получение максимального индекса коллекции ресурсов в текущем проекте.

Важно! Этот API работает только в Project на рабочем столе Windows.

getMaxTaskIndexAsync(options, callback)

Только документы проекта. Получение максимального индекса коллекции задач в текущем проекте.

Важно! Этот API работает только в Project на рабочем столе Windows.

getMaxTaskIndexAsync(callback)

Только документы проекта. Получение максимального индекса коллекции задач в текущем проекте.

Важно! Этот API работает только в Project на рабочем столе Windows.

getProjectFieldAsync(fieldId, options, callback)

Только документы проекта. Получить поле Project (например, ProjectWebAccessURL).

getProjectFieldAsync(fieldId, callback)

Только документы проекта. Получить поле Project (например, ProjectWebAccessURL).

getResourceByIndexAsync(resourceIndex, options, callback)

Только документы проекта. Получите GUID ресурса с указанным индексом в коллекции ресурсов.

Важно! Этот API работает только в Project на рабочем столе Windows.

getResourceByIndexAsync(resourceIndex, callback)

Только документы проекта. Получите GUID ресурса с указанным индексом в коллекции ресурсов.

Важно! Этот API работает только в Project на рабочем столе Windows.

getResourceFieldAsync(resourceId, fieldId, options, callback)

Только документы проекта. Получение поля ресурса для предоставленного идентификатора ресурса. (например, ResourceName)

getResourceFieldAsync(resourceId, fieldId, callback)

Только документы проекта. Получение поля ресурса для предоставленного идентификатора ресурса. (например, ResourceName)

getSelectedDataAsync(coercionType, options, callback)

Считывает данные в текущем выделенном фрагменте документа.

getSelectedDataAsync(coercionType, callback)

Считывает данные в текущем выделенном фрагменте документа.

getSelectedResourceAsync(options, callback)

Только документы проекта. Получите идентификатор текущего выбранного ресурса.

getSelectedResourceAsync(callback)

Только документы проекта. Получите идентификатор текущего выбранного ресурса.

getSelectedTaskAsync(options, callback)

Только документы проекта. Получите идентификатор текущей выбранной задачи.

getSelectedTaskAsync(callback)

Только документы проекта. Получите идентификатор текущей выбранной задачи.

getSelectedViewAsync(options, callback)

Только документы проекта. Получите текущий выбранный тип представления (например, Ганта) и имя представления.

getSelectedViewAsync(callback)

Только документы проекта. Получите текущий выбранный тип представления (например, Ганта) и имя представления.

getTaskAsync(taskId, options, callback)

Только документы проекта. Получите имя задачи, идентификатор задачи WSS и resourceNames для заданного taskId.

getTaskAsync(taskId, callback)

Только документы проекта. Получите имя задачи, идентификатор задачи WSS и resourceNames для заданного taskId.

getTaskByIndexAsync(taskIndex, options, callback)

Только документы проекта. Получите GUID задачи с указанным индексом в коллекции задач.

Важно! Этот API работает только в Project на рабочем столе Windows.

getTaskByIndexAsync(taskIndex, callback)

Только документы проекта. Получите GUID задачи с указанным индексом в коллекции задач.

Важно! Этот API работает только в Project на рабочем столе Windows.

getTaskFieldAsync(taskId, fieldId, options, callback)

Только документы проекта. Получение поля задачи для предоставленного идентификатора задачи. (например, StartDate).

getTaskFieldAsync(taskId, fieldId, callback)

Только документы проекта. Получение поля задачи для предоставленного идентификатора задачи. (например, StartDate).

getWSSUrlAsync(options, callback)

Только документы проекта. Получите URL-адрес WSS и имя списка задач. Кроме того, MPP синхронизируется.

getWSSUrlAsync(callback)

Только документы проекта. Получите URL-адрес WSS и имя списка задач. Кроме того, MPP синхронизируется.

goToByIdAsync(id, goToType, options, callback)

Переходит к указанному объекту или месту в документе.

goToByIdAsync(id, goToType, callback)

Переходит к указанному объекту или месту в документе.

removeHandlerAsync(eventType, options, callback)

Удаляет обработчик событий для указанного типа события.

removeHandlerAsync(eventType, callback)

Удаляет обработчик событий для указанного типа события.

setResourceFieldAsync(resourceId, fieldId, fieldValue, options, callback)

Только документы проекта. Задайте поле ресурса для указанного идентификатора ресурса.

Важно! Этот API работает только в Project на рабочем столе Windows.

setResourceFieldAsync(resourceId, fieldId, fieldValue, callback)

Только документы проекта. Задайте поле ресурса для указанного идентификатора ресурса.

Важно! Этот API работает только в Project на рабочем столе Windows.

setSelectedDataAsync(data, options, callback)

Записывает указанные данные в текущий выделенный фрагмент.

setSelectedDataAsync(data, callback)

Записывает указанные данные в текущий выделенный фрагмент.

setTaskFieldAsync(taskId, fieldId, fieldValue, options, callback)

Только документы проекта. Задайте поле задачи для указанного идентификатора задачи.

Важно! Этот API работает только в Project на рабочем столе Windows.

setTaskFieldAsync(taskId, fieldId, fieldValue, callback)

Только документы проекта. Задайте поле задачи для указанного идентификатора задачи.

Важно! Этот API работает только в Project на рабочем столе Windows.

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

bindings

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

bindings: Bindings;

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

Комментарии

Вы не создаете экземпляр объекта Document непосредственно в скрипте. Чтобы вызвать элементы объекта Document для взаимодействия с текущим документом или листом, используйте объект Office.context.document.

Примеры

function displayAllBindings() {
    Office.context.document.bindings.getAllAsync(function (asyncResult) {
        let bindingString = '';
        for (let i in asyncResult.value) {
            bindingString += asyncResult.value[i].id + '\n';
        }
        write('Existing bindings: ' + bindingString);
    });
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

customXmlParts

Получает объект, представляющий настраиваемые XML-части в документе.

customXmlParts: CustomXmlParts;

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

Примеры

function getCustomXmlParts(){
    Office.context.document.customXmlParts.getByNamespaceAsync('http://tempuri.org', function (asyncResult) {
        write('Retrieved ' + asyncResult.value.length + ' custom XML parts');
    });
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

mode

Получает режим, в котором находится документ.

mode: DocumentMode;

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

Примеры

function displayDocumentMode() {
    write(Office.context.document.mode);
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}
// The following example initializes the add-in and then gets properties of the
// Document object that are available in the context of a Project document.
// A Project document is the opened, active project. To access members of the
// ProjectDocument object, use the Office.context.document object as shown in
// the code examples for ProjectDocument methods and events.
// The example assumes your add-in has a reference to the jQuery library and
// that the following page control is defined in the content div in the page body:
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // Get information about the document.
            showDocumentProperties();
        });
    };

    // Get the document mode and the URL of the active project.
    function showDocumentProperties() {
        const output = String.format(
            'The document mode is {0}.<br/>The URL of the active project is {1}.',
            Office.context.document.mode,
            Office.context.document.url);
        $('#message').html(output);
    }
})();

settings

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

settings: Settings;

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

url

Возвращает URL-адрес документа, открытого в настоящее время приложением Office. Возвращает значение NULL, если URL-адрес недоступен.

url: string;

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

string

Примеры

function displayDocumentUrl() {
    write(Office.context.document.url);
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

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

addHandlerAsync(eventType, handler, options, callback)

Добавляет обработчик событий для события объекта Document.

addHandlerAsync(eventType: Office.EventType, handler: any, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<void>) => void): void;

Параметры

eventType
Office.EventType

Для события объекта Document параметр eventType можно указать как Office.EventType.Document.SelectionChanged или Office.EventType.Document.ActiveViewChanged, или соответствующее текстовое значение этого перечисления.

handler

any

Добавляемая функция обработчика событий, единственный параметр которой имеет тип Office.DocumentSelectionChangedEventArgs. Обязательно.

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<void>) => void

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

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

void

Комментарии

Набор обязательных элементов: DocumentEvents

Можно добавить несколько обработчиков событий для указанного eventType, если имя каждой функции обработчика событий является уникальным.

addHandlerAsync(eventType, handler, callback)

Добавляет обработчик событий для события объекта Document.

addHandlerAsync(eventType: Office.EventType, handler: any, callback?: (result: AsyncResult<void>) => void): void;

Параметры

eventType
Office.EventType

Для события объекта Document параметр eventType можно указать как Office.EventType.Document.SelectionChanged или Office.EventType.Document.ActiveViewChanged, или соответствующее текстовое значение этого перечисления.

handler

any

Добавляемая функция обработчика событий, единственный параметр которой имеет тип Office.DocumentSelectionChangedEventArgs. Обязательно.

callback

(result: Office.AsyncResult<void>) => void

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

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

void

Комментарии

Набор обязательных элементов: DocumentEvents

Можно добавить несколько обработчиков событий для указанного eventType, если имя каждой функции обработчика событий является уникальным.

Примеры

// The following example adds an event handler for the SelectionChanged event of a document
function addSelectionChangedEventHandler() {
    Office.context.document.addHandlerAsync(Office.EventType.DocumentSelectionChanged, MyHandler);
}

function MyHandler(eventArgs) {
    write('Event raised: ' + eventArgs.type);
    doSomethingWithDocument(eventArgs.document);
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}
// The following code example adds a handler for the ResourceSelectionChanged event.
// When the resource selection changes in the document, it gets the GUID of the selected resource.
// The example assumes your add-in has a reference to the jQuery library and that the
// following page control is defined in the content div in the page body:
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            Office.context.document.addHandlerAsync(
                Office.EventType.ResourceSelectionChanged,
                getResourceGuid);
        });
    };

    // Get the GUID of the selected resource and display it in the add-in.
    function getResourceGuid() {
        Office.context.document.getSelectedResourceAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    $('#message').html(result.value);
                }
            }
        );
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

// For a complete code sample that shows how to use a ResourceSelectionChanged
// event handler in a Project add-in, see "Create your first task pane add-in for Microsoft Project".
// https://learn.microsoft.com/office/dev/add-ins/project/create-your-first-task-pane-add-in-for-project-by-using-a-text-editor
// The following code example adds a handler for the TaskSelectionChanged event.
// When the task selection changes in the document, it gets the GUID of the
// selected task.
// The example assumes your add-in has a reference to the jQuery library and that
// the following page control is defined in the content div in the page body:
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            Office.context.document.addHandlerAsync(
                Office.EventType.TaskSelectionChanged,
                getTaskGuid);
            getTaskGuid();
        });
    };

    // Get the GUID of the selected task and display it in the add-in.
    function getTaskGuid() {
        Office.context.document.getSelectedTaskAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    $('#message').html(result.value);
                }
            }
        );
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();
// The following code example adds a handler for the ViewSelectionChanged
// event. When the active view changes, it gets the name and type of the active view.
// The example assumes your add-in has a reference to the jQuery library and that
// the following page control is defined in the content div in the page body:
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            Office.context.document.addHandlerAsync(
                Office.EventType.ViewSelectionChanged,
                getActiveView);
            getActiveView();
        });
    };

    // Get the name and type of the active view and display it in the add-in.
    function getActiveView() {
        Office.context.document.getSelectedViewAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    const output = String.format(
                        'View name: {0}<br/>View type: {1}',
                        result.value.viewName, result.value.viewType);
                    $('#message').html(output);
                }
            }
        );
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

// For an example that shows how to use a ViewSelectionChanged event handler in a
// Project add-in, see "Create your first task pane add-in for Microsoft Project".
// https://learn.microsoft.com/office/dev/add-ins/project/create-your-first-task-pane-add-in-for-project-by-using-a-text-editor
// The following code example uses addHandlerAsync to add an event handler for the ViewSelectionChanged event.
// When the active view changes, the handler checks the view type. It enables a button if the view is a resource
// view and disables the button if it isn't a resource view. Choosing the button gets the GUID of the selected
// resource and displays it in the add-in.
// The example assumes that your add-in has a reference to the jQuery library and that the following page controls
// are defined in the content div in the page body:
// <input id="get-info" type="button" value="Get info" disabled="disabled" /><br />
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            // Add a ViewSelectionChanged event handler.
            Office.context.document.addHandlerAsync(
                Office.EventType.ViewSelectionChanged,
                getActiveView);
            $('#get-info').on("click", getResourceGuid);

            // This example calls the handler on page load to get the active view
            // of the default page.
            getActiveView();
        });
    };

    // Activate the button based on the active view type of the document.
    // This is the ViewSelectionChanged event handler.
    function getActiveView() {
        Office.context.document.getSelectedViewAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    const viewType = result.value.viewType;
                    if (viewType == 6 ||   // ResourceForm
                        viewType == 7 ||   // ResourceSheet
                        viewType == 8 ||   // ResourceGraph
                        viewType == 15) {  // ResourceUsage
                        $('#get-info').removeAttr('disabled');
                    }
                    else {
                        $('#get-info').attr('disabled', 'disabled');
                    }
                    const output = String.format(
                        'View name: {0}<br/>View type: {1}',
                        result.value.viewName, viewType);
                    $('#message').html(output);
                }
            }
        );
    }

    // Get the GUID of the currently selected resource and display it in the add-in.
    function getResourceGuid() {
        Office.context.document.getSelectedResourceAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    $('#message').html('Resource GUID: ' + result.value);
                }
            }
        );
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

// For a complete code sample that shows how to use a ViewSelectionChanged event handler in a Project add-in,
// see "Create your first task pane add-in for Project by using a text editor."
// https://learn.microsoft.com/office/dev/add-ins/project/create-your-first-task-pane-add-in-for-project-by-using-a-text-editor

getActiveViewAsync(options, callback)

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

getActiveViewAsync(options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<"edit" | "read">) => void): void;

Параметры

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<"edit" | "read">) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это состояние текущего представления презентации. Возвращаемое значение может быть "изменить" или "прочитать". "изменить" соответствует любому из представлений, в которых можно редактировать слайды: Обычный, Сортировщик слайдов или Режим структуры. "чтение" соответствует слайд-шоу или режиму чтения.

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

void

Комментарии

Набор обязательных элементов: ActiveView

Может активировать событие при изменении представления.

getActiveViewAsync(callback)

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

getActiveViewAsync(callback?: (result: AsyncResult<"edit" | "read">) => void): void;

Параметры

callback

(result: Office.AsyncResult<"edit" | "read">) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это состояние текущего представления презентации. Возвращаемое значение может быть "изменить" или "прочитать". "изменить" соответствует любому из представлений, в которых можно редактировать слайды: Обычный, Сортировщик слайдов или Режим структуры. "чтение" соответствует слайд-шоу или режиму чтения.

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

void

Комментарии

Набор обязательных элементов: ActiveView

Может активировать событие при изменении представления.

Примеры

function getFileView() {
    // Get whether the current view is edit or read.
    Office.context.document.getActiveViewAsync(function (asyncResult) {
        if (asyncResult.status == "failed") {
            showMessage("Action failed with error: " + asyncResult.error.message);
        }
        else {
            showMessage(asyncResult.value);
        }
    });
}

getFileAsync(fileType, options, callback)

Возвращает полный файл документа по фрагментам размером до 4194304 байт (4 МБ). Для надстроек на iPad поддерживается срез файла размером до 65536 (64 КБ). Обратите внимание, что если указать размер фрагмента выше допустимого, возникнет сбой "Внутренняя ошибка".

getFileAsync(fileType: FileType, options?: GetFileOptions, callback?: (result: AsyncResult<Office.File>) => void): void;

Параметры

fileType
Office.FileType

Формат, в котором будет возвращен файл

options
Office.GetFileOptions

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

callback

(result: Office.AsyncResult<Office.File>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — объект File.

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

void

Комментарии

Наборы обязательных элементов:

  • CompressedFile (при использовании Office.FileType.Compressed)

  • Файл

  • TextFile (при использовании Office.FileType.Text)

Для надстроек, работающих в приложениях Office, отличных от Office на iPad, getFileAsync метод поддерживает получение файлов в срезах до 4194304 байтов (4 МБ). Для надстроек, работающих в приложениях Office на iPad, getFileAsync метод поддерживает получение файлов в срезах размером до 65536 (64 КБ).

Параметр fileType можно указать с помощью перечисления Office.FileType или текстовых значений. Но возможные значения зависят от приложения.

Поддерживаемые типы файлов по платформам

Office в Интернете Office для Windows Office для Mac Office для iPad
Excel Compressed, Pdf Compressed, Pdf, TextCompressed, Pdf, Text Не поддерживается
Powerpoint Compressed, Pdf Compressed, Pdf Compressed, Pdf Compressed, Pdf
Word Compressed, Pdf, TextCompressed, Pdf, TextCompressed, Pdf, TextCompressed, Pdf

Примеры

// The following example gets the document in Office Open XML ("compressed") format in 65536 bytes (64 KB) slices.
// Note: The implementation of app.showNotification in this example is from the Visual Studio template for Office Add-ins.
function getDocumentAsCompressed() {
    Office.context.document.getFileAsync(Office.FileType.Compressed, { sliceSize: 65536 /*64 KB*/ }, 
        function (result) {
            if (result.status == "succeeded") {
                // If the getFileAsync call succeeded, then
                // result.value will return a valid File Object.
                const myFile = result.value;
                const sliceCount = myFile.sliceCount;
                const docDataSlices = [];
                let slicesReceived = 0, gotAllSlices = true;
                app.showNotification("File size:" + myFile.size + " #Slices: " + sliceCount);

                // Get the file slices.
                getSliceAsync(myFile, 0, sliceCount, gotAllSlices, docDataSlices, slicesReceived);
            } else {
                app.showNotification("Error:", result.error.message);
            }
    });
}

function getSliceAsync(file, nextSlice, sliceCount, gotAllSlices, docDataSlices, slicesReceived) {
    file.getSliceAsync(nextSlice, function (sliceResult) {
        if (sliceResult.status == "succeeded") {
            if (!gotAllSlices) { /* Failed to get all slices, no need to continue. */
                return;
            }

            // Got one slice, store it in a temporary array.
            // (Or you can do something else, such as
            // send it to a third-party server.)
            docDataSlices[sliceResult.value.index] = sliceResult.value.data;
            if (++slicesReceived == sliceCount) {
              // All slices have been received.
              file.closeAsync();
              onGotAllSlices(docDataSlices);
            }
            else {
                getSliceAsync(file, ++nextSlice, sliceCount, gotAllSlices, docDataSlices, slicesReceived);
            }
        }
            else {
                gotAllSlices = false;
                file.closeAsync();
                app.showNotification("getSliceAsync Error:", sliceResult.error.message);
            }
    });
}

function onGotAllSlices(docDataSlices) {
    let docData = [];
    for (let i = 0; i < docDataSlices.length; i++) {
        docData = docData.concat(docDataSlices[i]);
    }

    let fileContent = new String();
    for (let j = 0; j < docData.length; j++) {
        fileContent += String.fromCharCode(docData[j]);
    }

    // Now all the file content is stored in 'fileContent' variable,
    // you can do something with it, such as print, fax...
}

// The following example gets the document in PDF format.
Office.context.document.getFileAsync(Office.FileType.Pdf,
    function(result) {
        if (result.status == "succeeded") {
            const myFile = result.value;
            const sliceCount = myFile.sliceCount;
            app.showNotification("File size:" + myFile.size + " #Slices: " + sliceCount);

            // Get the file slices.
            const docDataSlices = [];
            let slicesReceived = 0, gotAllSlices = true;
            getSliceAsync(myFile, 0, sliceCount, gotAllSlices, docDataSlices, slicesReceived);
            
            myFile.closeAsync();
        }
        else {
            app.showNotification("Error:", result.error.message);
        }
    }
);

getFileAsync(fileType, callback)

Возвращает полный файл документа по фрагментам размером до 4194304 байт (4 МБ). Для надстроек на iPad поддерживается срез файла размером до 65536 (64 КБ). Обратите внимание, что если указать размер фрагмента выше допустимого, возникнет сбой "Внутренняя ошибка".

getFileAsync(fileType: FileType, callback?: (result: AsyncResult<Office.File>) => void): void;

Параметры

fileType
Office.FileType

Формат, в котором будет возвращен файл

callback

(result: Office.AsyncResult<Office.File>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — объект File.

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

void

Комментарии

Наборы обязательных элементов:

  • CompressedFile (при использовании Office.FileType.Compressed)

  • Файл

  • TextFile (при использовании Office.FileType.Text)

Для надстроек, работающих в приложениях Office, отличных от Office на iPad, getFileAsync метод поддерживает получение файлов в срезах до 4194304 байтов (4 МБ). Для надстроек, работающих в приложениях Office на iPad, getFileAsync метод поддерживает получение файлов в срезах размером до 65536 (64 КБ).

Параметр fileType можно указать с помощью перечисления Office.FileType или текстовых значений. Но возможные значения зависят от приложения.

Поддерживаемые типы файлов по платформам

Office в Интернете Office для Windows Office для Mac Office для iPad
Excel Compressed, Pdf Compressed, Pdf, TextCompressed, Pdf, Text Не поддерживается
Powerpoint Compressed, Pdf Compressed, Pdf Compressed, Pdf Compressed, Pdf
Word Compressed, Pdf, TextCompressed, Pdf, TextCompressed, Pdf, TextCompressed, Pdf

getFilePropertiesAsync(options, callback)

Получает свойства текущего документа.

getFilePropertiesAsync(options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<Office.FileProperties>) => void): void;

Параметры

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<Office.FileProperties>) => void

Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это свойства файла (с URL-адресом, найденным по адресу asyncResult.value.url).

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

void

Комментарии

Наборы обязательных элементов: не в наборе

Вы получите URL-адрес файла со свойством asyncResult.value.urlurl .

getFilePropertiesAsync(callback)

Получает свойства текущего документа.

getFilePropertiesAsync(callback?: (result: AsyncResult<Office.FileProperties>) => void): void;

Параметры

callback

(result: Office.AsyncResult<Office.FileProperties>) => void

Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это свойства файла (с URL-адресом, найденным по адресу asyncResult.value.url).

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

void

Комментарии

Наборы обязательных элементов: не в наборе

Вы получите URL-адрес файла со свойством asyncResult.value.urlurl .

Примеры

// To read the URL of the current file, you need to write a callback function that returns the URL.
// The following example shows how to:
// 1. Pass an anonymous callback function that returns the value of the file's URL
//    to the callback parameter of the getFilePropertiesAsync method.
// 2. Display the value on the add-in's page.
function getFileUrl() {
    // Get the URL of the current file.
    Office.context.document.getFilePropertiesAsync(function (asyncResult) {
        const fileUrl = asyncResult.value.url;
        if (fileUrl == "") {
            showMessage("The file hasn't been saved yet. Save the file and try again");
        }
        else {
            showMessage(fileUrl);
        }
    });
}

getMaxResourceIndexAsync(options, callback)

Только документы проекта. Получение максимального индекса коллекции ресурсов в текущем проекте.

Важно! Этот API работает только в Project на рабочем столе Windows.

getMaxResourceIndexAsync(options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<number>) => void): void;

Параметры

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<number>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это наибольшее число индекса в коллекции ресурсов текущего проекта.

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

void

getMaxResourceIndexAsync(callback)

Только документы проекта. Получение максимального индекса коллекции ресурсов в текущем проекте.

Важно! Этот API работает только в Project на рабочем столе Windows.

getMaxResourceIndexAsync(callback?: (result: AsyncResult<number>) => void): void;

Параметры

callback

(result: Office.AsyncResult<number>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это наибольшее число индекса в коллекции ресурсов текущего проекта.

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

void

Примеры

// The following code example calls getResourceTaskIndexAsync to get the maximum index of the collection 
// of resources in the current project. Then it uses the returned value and the getResourceByIndexAsync
// method to get each resource GUID. The example assumes that your add-in has a reference to the 
// jQuery library and that the following page controls are defined in the content div in the page body:
// <input id="get-info" type="button" value="Get info" /><br />
// <span id="message"></span>

(function () {
    "use strict";
    const resourceGuids = [];

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            app.initialize();
            $('#get-info').on("click", getResourceInfo);
        });
    };

    // Get the maximum resource index, and then get the resource GUIDs.
    function getResourceInfo() {
        getMaxResourceIndex().then(
            function (data) {
                getResourceGuids(data);
            }
        );
    }

    // Get the maximum index of the resources for the current project.
    function getMaxResourceIndex() {
        const defer = $.Deferred();
        Office.context.document.getMaxResourceIndexAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Get each resource GUID, and then display the GUIDs in the add-in.
    // There is no 0 index for resources, so start with index 1.
    function getResourceGuids(maxResourceIndex) {
        const defer = $.Deferred();
        for (let i = 1; i <= maxResourceIndex; i++) {
            getResourceGuid(i);
        }
        return defer.promise();
        function getResourceGuid(index) {
            Office.context.document.getResourceByIndexAsync(index,
                function (result) {
                    if (result.status === Office.AsyncResultStatus.Succeeded) {
                        resourceGuids.push(result.value);
                        if (index == maxResourceIndex) {
                            defer.resolve();
                            $('#message').html(resourceGuids.toString());
                        }
                    }
                    else {
                        onError(result.error);
                    }
                }
            );
        }
    }
    function onError(error) {
        app.showNotification(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

getMaxTaskIndexAsync(options, callback)

Только документы проекта. Получение максимального индекса коллекции задач в текущем проекте.

Важно! Этот API работает только в Project на рабочем столе Windows.

getMaxTaskIndexAsync(options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<number>) => void): void;

Параметры

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<number>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это наибольшее число индекса в коллекции задач текущего проекта.

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

void

getMaxTaskIndexAsync(callback)

Только документы проекта. Получение максимального индекса коллекции задач в текущем проекте.

Важно! Этот API работает только в Project на рабочем столе Windows.

getMaxTaskIndexAsync(callback?: (result: AsyncResult<number>) => void): void;

Параметры

callback

(result: Office.AsyncResult<number>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это наибольшее число индекса в коллекции задач текущего проекта.

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

void

Примеры

// The following code example calls getMaxTaskIndexAsync to get the maximum index
// of the collection of tasks in the current project. Then it uses the returned value
// with the getTaskByIndexAsync method to get each task GUID.
// The example assumes your add-in has a reference to the jQuery library and that the
// following page controls are defined in the content div in the page body:
// <input id="get-info" type="button" value="Get info" /><br />
// <span id="message"></span>

(function () {
    "use strict";
    const taskGuids = [];

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            app.initialize();
            $('#get-info').on("click", getTaskInfo);
        });
    };

    // Get the maximum task index, and then get the task GUIDs.
    function getTaskInfo() {
        getMaxTaskIndex().then(
            function (data) {
                getTaskGuids(data);
            }
        );
    }

    // Get the maximum index of the tasks for the current project.
    function getMaxTaskIndex() {
        const defer = $.Deferred();
        Office.context.document.getMaxTaskIndexAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Get each task GUID, and then display the GUIDs in the add-in.
    function getTaskGuids(maxTaskIndex) {
        const defer = $.Deferred();
        for (let i = 0; i <= maxTaskIndex; i++) {
            getTaskGuid(i);
        }
        return defer.promise();
        function getTaskGuid(index) {
            Office.context.document.getTaskByIndexAsync(index,
                function (result) {
                    if (result.status === Office.AsyncResultStatus.Succeeded) {
                        taskGuids.push(result.value);
                        if (index == maxTaskIndex) {
                            defer.resolve();
                            $('#message').html(taskGuids.toString());
                        }
                    }
                    else {
                        onError(result.error);
                    }
                }
            );
        }
    }
    function onError(error) {
        app.showNotification(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

getProjectFieldAsync(fieldId, options, callback)

Только документы проекта. Получить поле Project (например, ProjectWebAccessURL).

getProjectFieldAsync(fieldId: number, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<any>) => void): void;

Параметры

fieldId

number

Поля уровня проекта.

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата содержит fieldValue свойство , представляющее значение указанного поля.

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

void

getProjectFieldAsync(fieldId, callback)

Только документы проекта. Получить поле Project (например, ProjectWebAccessURL).

getProjectFieldAsync(fieldId: number, callback?: (result: AsyncResult<any>) => void): void;

Параметры

fieldId

number

Поля уровня проекта.

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата содержит fieldValue свойство , представляющее значение указанного поля.

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

void

Примеры

// The following code example gets the values of three specified fields for the active project, 
// and then displays the values in the add-in.
// The example calls getProjectFieldAsync recursively, after the previous call returns successfully.
// It also tracks the calls to determine when all calls are sent.
// The example assumes your add-in has a reference to the jQuery library and that the 
// following page control is defined in the content div in the page body:
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // Get information for the active project.
            getProjectInformation();
        });
    };

    // Get the specified fields for the active project.
    function getProjectInformation() {
        const fields =
            [Office.ProjectProjectFields.Start, 
             Office.ProjectProjectFields.Finish, 
             Office.ProjectProjectFields.GUID];
        const fieldValues = ['Start: ', 'Finish: ', 'GUID: '];
        let index = 0; 
        getField();

        // Get each field, and then display the field values in the add-in.
        function getField() {
            if (index == fields.length) {
                let output = '';
                for (let i = 0; i < fieldValues.length; i++) {
                    output += fieldValues[i] + '<br />';
                }
                $('#message').html(output);
            }
            else {
                Office.context.document.getProjectFieldAsync(
                    fields[index],
                    function (result) {

                        // If the call is successful, get the field value and then get the next field.
                        if (result.status === Office.AsyncResultStatus.Succeeded) {
                            fieldValues[index] += result.value.fieldValue;
                            getField(index++);
                        }
                        else {
                            onError(result.error);
                        }
                    }
                );
            }
        }
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

getResourceByIndexAsync(resourceIndex, options, callback)

Только документы проекта. Получите GUID ресурса с указанным индексом в коллекции ресурсов.

Важно! Этот API работает только в Project на рабочем столе Windows.

getResourceByIndexAsync(resourceIndex: number, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<string>) => void): void;

Параметры

resourceIndex

number

Индекс ресурса в коллекции ресурсов для проекта.

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<string>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это GUID ресурса в виде строки.

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

void

getResourceByIndexAsync(resourceIndex, callback)

Только документы проекта. Получите GUID ресурса с указанным индексом в коллекции ресурсов.

Важно! Этот API работает только в Project на рабочем столе Windows.

getResourceByIndexAsync(resourceIndex: number, callback?: (result: AsyncResult<string>) => void): void;

Параметры

resourceIndex

number

Индекс ресурса в коллекции ресурсов для проекта.

callback

(result: Office.AsyncResult<string>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это GUID ресурса в виде строки.

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

void

Примеры

// The following code example calls getMaxResourceIndexAsync to get the maximum index in the project's resource
// collection, and then calls getResourceByIndexAsync to get the GUID for each resource.
// The example assumes that your add-in has a reference to the jQuery library and that the following 
// page controls are defined in the content div in the page body:
// <input id="get-info" type="button" value="Get info" /><br />
// <span id="message"></span>

(function () {
    "use strict";
    const resourceGuids = [];

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            app.initialize();
            $('#get-info').on("click", getResourceInfo);
        });
    };

    // Get the maximum resource index, and then get the resource GUIDs.
    function getResourceInfo() {
        getMaxResourceIndex().then(
            function (data) {
                getResourceGuids(data);
            }
        );
    }

    // Get the maximum index of the resources for the current project.
    function getMaxResourceIndex() {
        const defer = $.Deferred();
        Office.context.document.getMaxResourceIndexAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Get each resource GUID, and then display the GUIDs in the add-in.
    // There is no 0 index for resources, so start with index 1.
    function getResourceGuids(maxResourceIndex) {
        const defer = $.Deferred();
        for (let i = 1; i <= maxResourceIndex; i++) {
            getResourceGuid(i);
        }
        return defer.promise();
        function getResourceGuid(index) {
            Office.context.document.getResourceByIndexAsync(index,
                function (result) {
                    if (result.status === Office.AsyncResultStatus.Succeeded) {
                        resourceGuids.push(result.value);
                        if (index == maxResourceIndex) {
                            defer.resolve();
                            $('#message').html(resourceGuids.toString());
                        }
                    }
                    else {
                        onError(result.error);
                    }
                }
            );
        }
    }
    function onError(error) {
        app.showNotification(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

getResourceFieldAsync(resourceId, fieldId, options, callback)

Только документы проекта. Получение поля ресурса для предоставленного идентификатора ресурса. (например, ResourceName)

getResourceFieldAsync(resourceId: string, fieldId: number, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<string>) => void): void;

Параметры

resourceId

string

Строка или значение идентификатора ресурса.

fieldId

number

Поля ресурсов.

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<string>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это GUID ресурса в виде строки.

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

void

getResourceFieldAsync(resourceId, fieldId, callback)

Только документы проекта. Получение поля ресурса для предоставленного идентификатора ресурса. (например, ResourceName)

getResourceFieldAsync(resourceId: string, fieldId: number, callback?: (result: AsyncResult<string>) => void): void;

Параметры

resourceId

string

Строка или значение идентификатора ресурса.

fieldId

number

Поля ресурсов.

callback

(result: Office.AsyncResult<string>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это GUID ресурса в виде строки.

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

void

Примеры

// The following code example calls getSelectedResourceAsync to get the GUID of the resource
// that's currently selected in a resource view. Then it gets three resource field values by calling 
// getResourceFieldAsync recursively.
// The example assumes your add-in has a reference to the jQuery library and that the following 
// page controls are defined in the content div in the page body:
// <input id="get-info" type="button" value="Get info" /><br />
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            $('#get-info').on("click", getResourceInfo);
        });
    };

    // Get the GUID of the resource and then get the resource fields.
    function getResourceInfo() {
        getResourceGuid().then(
            function (data) {
                getResourceFields(data);
            }
        );
    }

    // Get the GUID of the selected resource.
    function getResourceGuid() {
        const defer = $.Deferred();
        Office.context.document.getSelectedResourceAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Get the specified fields for the selected resource.
    function getResourceFields(resourceGuid) {
        const targetFields =
            [Office.ProjectResourceFields.Name,
             Office.ProjectResourceFields.Units, 
             Office.ProjectResourceFields.BaseCalendar];
        const fieldValues = ['Name: ', 'Units: ', 'Base calendar: '];
        let index = 0; 
        getField();

        // Get each field, and then display the field values in the add-in.
        function getField() {
            if (index == targetFields.length) {
                let output = '';
                for (let i = 0; i < fieldValues.length; i++) {
                    output += fieldValues[i] + '<br />';
                }
                $('#message').html(output);
            }

            // If the call is successful, get the field value and then get the next field.
            else {
                Office.context.document.getResourceFieldAsync(
                    resourceGuid,
                    targetFields[index],
                    function (result) {
                        if (result.status === Office.AsyncResultStatus.Succeeded) {
                            fieldValues[index] += result.value.fieldValue;
                            getField(index++);
                        }
                        else {
                            onError(result.error);
                        }
                    }
                );
            }
        }
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

getSelectedDataAsync(coercionType, options, callback)

Считывает данные в текущем выделенном фрагменте документа.

getSelectedDataAsync<T>(coercionType: Office.CoercionType, options?: GetSelectedDataOptions, callback?: (result: AsyncResult<T>) => void): void;

Параметры

coercionType
Office.CoercionType

Тип возвращаемой структуры данных. Сведения о поддерживаемых типах приведения для каждого приложения см. в разделе Примечания.

options
Office.GetSelectedDataOptions

Предоставляет параметры для настройки возвращаемых данных и способа их форматирования.

callback

(result: Office.AsyncResult<T>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это данные в текущем выделенном фрагменте. Возвращается в структуре данных или формате, указанном с помощью параметра coercionType. (Дополнительные сведения о приведении типов данных см. в разделе Замечания.)

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

void

Комментарии

Наборы обязательных элементов:

  • HtmlCoercion (при использовании Office.CoercionType.Html)

  • MatrixCoercion (при использовании Office.CoercionType.Matrix)

  • OoxmlCoercion (при использовании Office.CoercionType.Ooxml)

  • Selection

  • TableCoercion (при использовании Office.CoercionType.Table)

  • TextCoercion (при использовании Office.CoercionType.Text)

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

Property Использовать
AsyncResult.value Всегда возвращается undefined , так как нет объекта или данных для извлечения.
AsyncResult.status Определяет, удалось ли выполнить операцию.
AsyncResult.error Доступ к объекту Error, который предоставляет сведения об ошибке, если операция завершилась неудачно.
AsyncResult.asyncContext Определите элемент любого типа, возвращаемый в объекте AsyncResult без изменения.

Возможные значения параметра Office.CoercionType зависят от приложения Office.

CoercionType Поддерживаемые приложения
Office.CoercionType.Html
  • Word
Office.CoercionType.Matrix (массив массивов)
  • Excel
  • Word
Office.CoercionType.Ooxml (Office Open XML)
  • Word
Office.CoercionType.SlideRange
  • PowerPoint
Office.CoercionType.Table (объект TableData)
  • Excel
  • Word
Office.CoercionType.Text (строка)
  • Excel
  • PowerPoint
  • Project
  • Word
Office.CoercionType.XmlSvg
  • Excel в Windows и Mac

Примеры

// The following example uses the getSelectedDataAsync method of the Document object to retrieve the
// user's current selection as text, and then display it in the add-in's page.

// Displays the user's current selection.
function showSelection() {
    Office.context.document.getSelectedDataAsync(
        Office.CoercionType.Text,
        {
            valueFormat: Office.ValueFormat.Unformatted,
            filterType: Office.FilterType.All
        },
        (result) => {
            const dataValue = result.value;
            write('Selected data is: ' + dataValue);
        }
    );
}
// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}
// To read the value of the current selection, you need to write a callback function that reads the selection.
// The following example shows how to:
// 1. Pass an anonymous callback function that reads the value of the current selection
//    to the callback parameter of the getSelectedDataAsync method.
// 2. Read the selection as text, unformatted, and not filtered.
// 3. Display the value on the add-in's page.
function getText() {
    Office.context.document.getSelectedDataAsync(
        Office.CoercionType.Text,
        {
            valueFormat: Office.ValueFormat.Unformatted,
            filterType: Office.FilterType.All
        },
        (asyncResult) => {
            const error = asyncResult.error;
            if (asyncResult.status === Office.AsyncResultStatus.Failed) {
                write(error.name + ": " + error.message);
            } 
            else {
                // Get selected data.
                const dataValue = asyncResult.value; 
                write('Selected data is ' + dataValue);
            }
        }
    );
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}
// The following code example gets the values of the selected cells. It uses the optional
// asyncContext parameter to pass some text to the callback function.
// The example assumes your add-in has a reference to the jQuery library and that the
// following page controls are defined in the content div in the page body:
// <input id="get-info" type="button" value="Get info" /><br />
// <span id="message"></span>

// The onReady function must be run each time a new page is loaded.
Office.onReady(() => {
    $(document).ready(() => {
        // After the DOM is loaded, add-in-specific code can run.
        $('#get-info').on("click", getSelectedText);
    });
});

// Gets the text from the selected cells in the document, and displays it in the add-in.
function getSelectedText() {
    Office.context.document.getSelectedDataAsync(
        Office.CoercionType.Text,
        { asyncContext: "Some related info" },
        (result) => {
            if (result.status === Office.AsyncResultStatus.Failed) {
                onError(result.error);
            }
            else {
                const output = String.format(
                    'Selected text: {0}<br/>Passed info: {1}',
                    result.value, result.asyncContext);
                $('#message').html(output);
            }
        }
    );
}

function onError(error) {
    $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
}

getSelectedDataAsync(coercionType, callback)

Считывает данные в текущем выделенном фрагменте документа.

getSelectedDataAsync<T>(coercionType: Office.CoercionType, callback?: (result: AsyncResult<T>) => void): void;

Параметры

coercionType
Office.CoercionType

Тип возвращаемой структуры данных. Сведения о поддерживаемых типах приведения для каждого приложения см. в разделе Примечания.

callback

(result: Office.AsyncResult<T>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это данные в текущем выделенном фрагменте. Возвращается в структуре данных или формате, указанном с помощью параметра coercionType. (Дополнительные сведения о приведении типов данных см. в разделе Замечания.)

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

void

Комментарии

Наборы обязательных элементов:

  • HtmlCoercion (при использовании Office.CoercionType.Html)

  • MatrixCoercion (при использовании Office.CoercionType.Matrix)

  • OoxmlCoercion (при использовании Office.CoercionType.Ooxml)

  • Selection

  • TableCoercion (при использовании Office.CoercionType.Table)

  • TextCoercion (при использовании Office.CoercionType.Text)

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

Property Использовать
AsyncResult.value Всегда возвращается undefined , так как нет объекта или данных для извлечения.
AsyncResult.status Определяет, удалось ли выполнить операцию.
AsyncResult.error Доступ к объекту Error, который предоставляет сведения об ошибке, если операция завершилась неудачно.
AsyncResult.asyncContext Определите элемент любого типа, возвращаемый в объекте AsyncResult без изменения.

Возможные значения параметра Office.CoercionType зависят от приложения Office.

CoercionType Поддерживаемые приложения
Office.CoercionType.Html
  • Word
Office.CoercionType.Matrix (массив массивов)
  • Excel
  • Word
Office.CoercionType.Ooxml (Office Open XML)
  • Word
Office.CoercionType.SlideRange
  • PowerPoint
Office.CoercionType.Table (объект TableData)
  • Excel
  • Word
Office.CoercionType.Text (строка)
  • Excel
  • PowerPoint
  • Project
  • Word
Office.CoercionType.XmlSvg
  • Excel в Windows и Mac

getSelectedResourceAsync(options, callback)

Только документы проекта. Получите идентификатор текущего выбранного ресурса.

getSelectedResourceAsync(options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<string>) => void): void;

Параметры

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<string>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это GUID ресурса в виде строки.

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

void

getSelectedResourceAsync(callback)

Только документы проекта. Получите идентификатор текущего выбранного ресурса.

getSelectedResourceAsync(callback?: (result: AsyncResult<string>) => void): void;

Параметры

callback

(result: Office.AsyncResult<string>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это GUID ресурса в виде строки.

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

void

Примеры

// The following code example calls getSelectedResourceAsync to get the GUID of the resource that's 
// currently selected in a resource view. Then it gets three resource field values by calling 
// getResourceFieldAsync recursively.
// The example assumes your add-in has a reference to the jQuery library and that the following page controls are
// defined in the content div in the page body:
// <input id="get-info" type="button" value="Get info" /><br />
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            $('#get-info').on("click", getResourceInfo);
        });
    };

    // Get the GUID of the resource and then get the resource fields.
    function getResourceInfo() {
        getResourceGuid().then(
            function (data) {
                getResourceFields(data);
            }
        );
    }

    // Get the GUID of the selected resource.
    function getResourceGuid() {
        const defer = $.Deferred();
        Office.context.document.getSelectedResourceAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Get the specified fields for the selected resource.
    function getResourceFields(resourceGuid) {
        const targetFields =
            [Office.ProjectResourceFields.Name,
             Office.ProjectResourceFields.Units, 
             Office.ProjectResourceFields.BaseCalendar];
        const fieldValues = ['Name: ', 'Units: ', 'Base calendar: '];
        let index = 0; 
        getField();

        // Get each field, and then display the field values in the add-in.
        function getField() {
            if (index == targetFields.length) {
                let output = '';
                for (let i = 0; i < fieldValues.length; i++) {
                    output += fieldValues[i] + '<br />';
                }
                $('#message').html(output);
            }

            // If the call is successful, get the field value and then get the next field.
            else {
                Office.context.document.getResourceFieldAsync(
                    resourceGuid,
                    targetFields[index],
                    function (result) {
                        if (result.status === Office.AsyncResultStatus.Succeeded) {
                            fieldValues[index] += result.value.fieldValue;
                            getField(index++);
                        }
                        else {
                            onError(result.error);
                        }
                    }
                );
            }
        }
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

getSelectedTaskAsync(options, callback)

Только документы проекта. Получите идентификатор текущей выбранной задачи.

getSelectedTaskAsync(options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<string>) => void): void;

Параметры

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<string>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это GUID ресурса в виде строки.

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

void

getSelectedTaskAsync(callback)

Только документы проекта. Получите идентификатор текущей выбранной задачи.

getSelectedTaskAsync(callback?: (result: AsyncResult<string>) => void): void;

Параметры

callback

(result: Office.AsyncResult<string>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это GUID ресурса в виде строки.

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

void

Примеры

// The following code example calls getSelectedTaskAsync to get the GUID of the task that's currently
// selected in a task view. Then it gets task properties by calling getTaskAsync.
// The example assumes your add-in has a reference to the jQuery library and that the following page
// controls are defined in the content div in the page body:
// <input id="get-info" type="button" value="Get info" /><br />
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            $('#get-info').on("click", getTaskInfo);
        });
    };

    // // Get the GUID of the task, and then get local task properties.
    function getTaskInfo() {
        getTaskGuid().then(
            function (data) {
                getTaskProperties(data);
            }
        );
    }

    // Get the GUID of the selected task.
    function getTaskGuid() {
        const defer = $.Deferred();
        Office.context.document.getSelectedTaskAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Get local properties for the selected task, and then display it in the add-in.
    function getTaskProperties(taskGuid) {
        Office.context.document.getTaskAsync(
            taskGuid,
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    const taskInfo = result.value;
                    const output = String.format(
                        'Name: {0}<br/>GUID: {1}<br/>SharePoint task ID: {2}<br/>Resource names: {3}',
                        taskInfo.taskName, taskGuid, taskInfo.wssTaskId, taskInfo.resourceNames);
                    $('#message').html(output);
                }
            }
        );
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

getSelectedViewAsync(options, callback)

Только документы проекта. Получите текущий выбранный тип представления (например, Ганта) и имя представления.

getSelectedViewAsync(options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<any>) => void): void;

Параметры

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата содержит следующие свойства: viewName — имя представления в виде константы ProjectViewTypes. viewType — тип представления в виде целочисленного значения константы ProjectViewTypes.

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

void

getSelectedViewAsync(callback)

Только документы проекта. Получите текущий выбранный тип представления (например, Ганта) и имя представления.

getSelectedViewAsync(callback?: (result: AsyncResult<any>) => void): void;

Параметры

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата содержит следующие свойства: viewName — имя представления в виде константы ProjectViewTypes. viewType — тип представления в виде целочисленного значения константы ProjectViewTypes.

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

void

Примеры

// The following code example calls adds a ViewSelectionChanged event handler that
// calls getSelectedViewAsync to get the name and type of the active view in the document.
// The example assumes your add-in has a reference to the jQuery library and that
// the following page control is defined in the content div in the page body:
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            Office.context.document.addHandlerAsync(
                Office.EventType.ViewSelectionChanged,
                getActiveView);
            getActiveView();
        });
    };

    // Get the active view's name and type.
    function getActiveView() {
        Office.context.document.getSelectedViewAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    const output = String.format(
                        'View name: {0}<br/>View type: {1}',
                        result.value.viewName, viewType);
                    $('#message').html(output);
                }
            }
        );
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

getTaskAsync(taskId, options, callback)

Только документы проекта. Получите имя задачи, идентификатор задачи WSS и resourceNames для заданного taskId.

getTaskAsync(taskId: string, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<any>) => void): void;

Параметры

taskId

string

Строка или значение идентификатора задачи.

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата содержит следующие свойства: taskName — имя задачи. wssTaskId — идентификатор задачи в синхронизированном списке задач SharePoint. Если проект не синхронизирован со списком задач, значение будет 0. resourceNames — разделенный запятыми список имен ресурсов, назначенных задаче.

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

void

getTaskAsync(taskId, callback)

Только документы проекта. Получите имя задачи, идентификатор задачи WSS и resourceNames для заданного taskId.

getTaskAsync(taskId: string, callback?: (result: AsyncResult<any>) => void): void;

Параметры

taskId

string

Строка или значение идентификатора задачи.

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата содержит следующие свойства: taskName — имя задачи. wssTaskId — идентификатор задачи в синхронизированном списке задач SharePoint. Если проект не синхронизирован со списком задач, значение будет 0. resourceNames — разделенный запятыми список имен ресурсов, назначенных задаче.

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

void

Примеры

// The following code example calls getSelectedTaskAsync to get the task GUID of the currently
// selected task. Then it calls getTaskAsync to get the properties for the task that are
// available from the JavaScript API for Office.
// The example assumes your add-in has a reference to the jQuery library and that the
// following page controls are defined in the content div in the page body:
// <input id="get-info" type="button" value="Get info" /><br />
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            $('#get-info').on("click", getTaskInfo);
        });
    };

    // Get the GUID of the task, and then get local task properties.
    function getTaskInfo() {
        getTaskGuid().then(
            function (data) {
                getTaskProperties(data);
            }
        );
    }

    // Get the GUID of the selected task.
    function getTaskGuid() {
        const defer = $.Deferred();
        Office.context.document.getSelectedTaskAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Get local properties for the selected task, and then display it in the add-in.
    function getTaskProperties(taskGuid) {
        Office.context.document.getTaskAsync(
            taskGuid,
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    const taskInfo = result.value;
                    const output = String.format(
                        'Name: {0}<br/>GUID: {1}<br/>SharePoint task ID: {2}<br/>Resource names: {3}',
                        taskInfo.taskName, taskGuid, taskInfo.wssTaskId, taskInfo.resourceNames);
                    $('#message').html(output);
                }
            }
        );
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

getTaskByIndexAsync(taskIndex, options, callback)

Только документы проекта. Получите GUID задачи с указанным индексом в коллекции задач.

Важно! Этот API работает только в Project на рабочем столе Windows.

getTaskByIndexAsync(taskIndex: number, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<string>) => void): void;

Параметры

taskIndex

number

Индекс задачи в коллекции задач для проекта.

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<string>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это GUID задачи в виде строки.

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

void

getTaskByIndexAsync(taskIndex, callback)

Только документы проекта. Получите GUID задачи с указанным индексом в коллекции задач.

Важно! Этот API работает только в Project на рабочем столе Windows.

getTaskByIndexAsync(taskIndex: number, callback?: (result: AsyncResult<string>) => void): void;

Параметры

taskIndex

number

Индекс задачи в коллекции задач для проекта.

callback

(result: Office.AsyncResult<string>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — это GUID задачи в виде строки.

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

void

Примеры

// The following code example calls getMaxTaskIndexAsync to get the
// maximum index in the project's task collection, and then
// calls getTaskByIndexAsync to get the GUID for each task.
// The example assumes that your add-in has a reference to the
// jQuery library and that the following page controls are defined
// in the content div in the page body:
// <input id="get-info" type="button" value="Get info" /><br />
// <span id="message"></span>

(function () {
    "use strict";
    const taskGuids = [];

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            app.initialize();
            $('#get-info').on("click", getTaskInfo);
        });
    };

    // Get the maximum task index, and then get the task GUIDs.
    function getTaskInfo() {
        getMaxTaskIndex().then(
            function (data) {
                getTaskGuids(data);
            }
        );
    }

    // Get the maximum index of the tasks for the current project.
    function getMaxTaskIndex() {
        const defer = $.Deferred();
        Office.context.document.getMaxTaskIndexAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Get each task GUID, and then display the GUIDs in the add-in.
    function getTaskGuids(maxTaskIndex) {
        const defer = $.Deferred();
        for (let i = 0; i <= maxTaskIndex; i++) {
            getTaskGuid(i);
        }
        return defer.promise();
        function getTaskGuid(index) {
            Office.context.document.getTaskByIndexAsync(index,
                function (result) {
                    if (result.status === Office.AsyncResultStatus.Succeeded) {
                        taskGuids.push(result.value);
                        if (index == maxTaskIndex) {
                            defer.resolve();
                            $('#message').html(taskGuids.toString());
                        }
                    }
                    else {
                        onError(result.error);
                    }
                }
            );
        }
    }
    function onError(error) {
        app.showNotification(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

getTaskFieldAsync(taskId, fieldId, options, callback)

Только документы проекта. Получение поля задачи для предоставленного идентификатора задачи. (например, StartDate).

getTaskFieldAsync(taskId: string, fieldId: number, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<any>) => void): void;

Параметры

taskId

string

Строка или значение идентификатора задачи.

fieldId

number

Поля задачи.

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата содержит fieldValue свойство , представляющее значение указанного поля.

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

void

getTaskFieldAsync(taskId, fieldId, callback)

Только документы проекта. Получение поля задачи для предоставленного идентификатора задачи. (например, StartDate).

getTaskFieldAsync(taskId: string, fieldId: number, callback?: (result: AsyncResult<any>) => void): void;

Параметры

taskId

string

Строка или значение идентификатора задачи.

fieldId

number

Поля задачи.

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата содержит fieldValue свойство , представляющее значение указанного поля.

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

void

Примеры

// The following code example calls getSelectedTaskAsync to get the GUID of the task that's currently
// selected in a task view. Then it gets two task field values by calling getTaskFieldAsync recursively.
// The example assumes your add-in has a reference to the jQuery library and that the following page
// controls are defined in the content div in the page body:
// <input id="get-info" type="button" value="Get info" /><br />
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {
            
            // After the DOM is loaded, add-in-specific code can run.
            $('#get-info').on("click", getTaskInfo);
        });
    };

    // Get the GUID of the task, and then get the task fields.
    function getTaskInfo() {
        getTaskGuid().then(
            function (data) {
                getTaskFields(data);
            }
        );
    }

    // Get the GUID of the selected task.
    function getTaskGuid() {
        const defer = $.Deferred();
        Office.context.document.getSelectedTaskAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Get the specified fields for the selected task.
    function getTaskFields(taskGuid) {
        let output = '';
        const targetFields = [Office.ProjectTaskFields.Priority, Office.ProjectTaskFields.PercentComplete];
        const fieldValues = ['Priority: ', '% Complete: '];
        let index = 0;
        getField();

        // Get each field, and then display the field values in the add-in.
        function getField() {
            if (index == targetFields.length) {
                for (let i = 0; i < fieldValues.length; i++) {
                    output += fieldValues[i] + '<br />';
                }
                $('#message').html(output);
            }

            // Get the field value. If the call is successful, then get the next field.
            else {
                Office.context.document.getTaskFieldAsync(
                    taskGuid,
                    targetFields[index],
                    function (result) {
                        if (result.status === Office.AsyncResultStatus.Succeeded) {
                            fieldValues[index] += result.value.fieldValue;
                            getField(index++);
                        }
                        else {
                            onError(result.error);
                        }
                    }
                );
            }
        }
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

getWSSUrlAsync(options, callback)

Только документы проекта. Получите URL-адрес WSS и имя списка задач. Кроме того, MPP синхронизируется.

getWSSUrlAsync(options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<any>) => void): void;

Параметры

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата содержит следующие свойства: listName — имя синхронизированного списка задач SharePoint. serverUrl — URL-адрес синхронизированного списка задач SharePoint.

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

void

getWSSUrlAsync(callback)

Только документы проекта. Получите URL-адрес WSS и имя списка задач. Кроме того, MPP синхронизируется.

getWSSUrlAsync(callback?: (result: AsyncResult<any>) => void): void;

Параметры

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата содержит следующие свойства: listName — имя синхронизированного списка задач SharePoint. serverUrl — URL-адрес синхронизированного списка задач SharePoint.

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

void

goToByIdAsync(id, goToType, options, callback)

Переходит к указанному объекту или месту в документе.

goToByIdAsync(id: string | number, goToType: GoToType, options?: GoToByIdOptions, callback?: (result: AsyncResult<any>) => void): void;

Параметры

id

string | number

Идентификатор объекта или расположения для перехода.

goToType
Office.GoToType

Тип расположения, к которому выполняется переход.

options
Office.GoToByIdOptions

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

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — текущее представление.

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

void

Комментарии

Набор обязательных требований: не в наборе

PowerPoint не поддерживает метод goToByIdAsync в главных представлениях.

Поведение, вызванное параметром selectionMode, зависит от приложения Office:

В Excel Office.SelectionMode.Selected выбирает все содержимое в привязке или именованный элемент. Office.SelectionMode.None для привязок к тексту выбирает ячейку; для привязок к матрицам, таблицам и именованных элементов — выбирает первую ячейку с данными (а не первую ячейку в столбце заготовка таблицы).

В PowerPoint Office.SelectionMode.Selected : выбирает заголовок слайда или первое текстовое поле на слайде. Office.SelectionMode.None ничего не выбирает.

В Word: Office.SelectionMode.Selected выбирает все содержимое в привязке. Office.SelectionMode.None для текстовых привязок перемещает указатель в начало текста, а для привязок к матрицам и таблицам выбирает первую ячейку с данными (а не первую ячейку строки заголовка таблицы).

goToByIdAsync(id, goToType, callback)

Переходит к указанному объекту или месту в документе.

goToByIdAsync(id: string | number, goToType: GoToType, callback?: (result: AsyncResult<any>) => void): void;

Параметры

id

string | number

Идентификатор объекта или расположения для перехода.

goToType
Office.GoToType

Тип расположения, к которому выполняется переход.

callback

(result: Office.AsyncResult<any>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство value результата — текущее представление.

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

void

Комментарии

Набор обязательных требований: не в наборе

PowerPoint не поддерживает метод goToByIdAsync в главных представлениях.

Поведение, вызванное параметром selectionMode, зависит от приложения Office:

В Excel Office.SelectionMode.Selected выбирает все содержимое в привязке или именованный элемент. Office.SelectionMode.None для привязок к тексту выбирает ячейку; для привязок к матрицам, таблицам и именованных элементов — выбирает первую ячейку с данными (а не первую ячейку в столбце заготовка таблицы).

В PowerPoint Office.SelectionMode.Selected : выбирает заголовок слайда или первое текстовое поле на слайде. Office.SelectionMode.None ничего не выбирает.

В Word: Office.SelectionMode.Selected выбирает все содержимое в привязке. Office.SelectionMode.None для текстовых привязок перемещает указатель в начало текста, а для привязок к матрицам и таблицам выбирает первую ячейку с данными (а не первую ячейку строки заголовка таблицы).

Примеры

// Go to a binding by id (Word and Excel)
// The following example shows how to:
// 1. Create a table binding using the addFromSelectionAsync method as a sample binding to work with.
// 2. Specify that binding as the binding to go to.
// 3. Pass an anonymous callback function that returns the status of the operation
//    to the callback parameter of the goToByIdAsync method.
// 4. Display the value on the add-in's page.
function gotoBinding() {
    // Create a new table binding for the selected table.
    Office.context.document.bindings.addFromSelectionAsync("table",{ id: "MyTableBinding" }, function (asyncResult) {
    if (asyncResult.status == "failed") {
              showMessage("Action failed with error: " + asyncResult.error.message);
          }
          else {
              showMessage("Added new binding with type: " + asyncResult.value.type +" and id: " + asyncResult.value.id);
          }
    });

    // Go to binding by id.
    Office.context.document.goToByIdAsync("MyTableBinding", Office.GoToType.Binding, function (asyncResult) {
        if (asyncResult.status == "failed") {
            showMessage("Action failed with error: " + asyncResult.error.message);
        }
        else {
            showMessage("Navigation successful");
        }
    });
}

// Go to a table in a spreadsheet (Excel)
// The following example shows how to:
// 1. Specify a table by name as the table to go to.
// 2. Pass an anonymous callback function that returns the status of the operation
//    to the callback parameter of the goToByIdAsync method.
// 3. Display the value on the add-in's page.
function goToTable() {
    Office.context.document.goToByIdAsync("Table1", Office.GoToType.NamedItem, function (asyncResult) {
        if (asyncResult.status == "failed") {
            showMessage("Action failed with error: " + asyncResult.error.message);
        }
        else {
            showMessage("Navigation successful");
        }
    });
}

// Go to the currently selected slide by id (PowerPoint)
// The following example shows how to:
// 1. Get the id of the currently selected slides using the getSelectedDataAsync method.
// 2. Specify the returned id as the slide to go to.
// 3. Pass an anonymous callback function that returns the status of the operation
//    to the callback parameter of the goToByIdAsync method.
// 4. Display the value of the stringified JSON object returned by asyncResult.value,
//    which contains information about the selected slides, on the add-in's page.
let firstSlideId = 0;
function gotoSelectedSlide() {
    //Get currently selected slide's id
    Office.context.document.getSelectedDataAsync(Office.CoercionType.SlideRange, function (asyncResult) {
        if (asyncResult.status == "failed") {
            app.showNotification("Action failed with error: " + asyncResult.error.message);
        }
        else {
            firstSlideId = asyncResult.value.slides[0].id;
            app.showNotification(JSON.stringify(asyncResult.value));
        }
    });
    //Go to slide by id.
    Office.context.document.goToByIdAsync(firstSlideId, Office.GoToType.Slide, function (asyncResult) {
        if (asyncResult.status == "failed") {
            app.showNotification("Action failed with error: " + asyncResult.error.message);
        }
        else {
            app.showNotification("Navigation successful");
        }
    });
}

// Go to slide by index (PowerPoint)
// The following example shows how to:
// 1. Specify the index of the first, last, previous, or next slide to go to.
// 2. Pass an anonymous callback function that returns the status of the operation
//    to the callback parameter of the goToByIdAsync method.
// 3. Display the value on the add-in's page.
function goToSlideByIndex() {
    const goToFirst = Office.Index.First;
    const goToLast = Office.Index.Last;
    const goToPrevious = Office.Index.Previous;
    const goToNext = Office.Index.Next;

    Office.context.document.goToByIdAsync(goToNext, Office.GoToType.Index, function (asyncResult) {
        if (asyncResult.status == "failed") {
            showMessage("Action failed with error: " + asyncResult.error.message);
        }
        else {
            showMessage("Navigation successful");
        }
    });
}

removeHandlerAsync(eventType, options, callback)

Удаляет обработчик событий для указанного типа события.

removeHandlerAsync(eventType: Office.EventType, options?: RemoveHandlerOptions, callback?: (result: AsyncResult<void>) => void): void;

Параметры

eventType
Office.EventType

Тип события. Для документа может быть "Document.SelectionChanged" или "Document.ActiveViewChanged".

options
Office.RemoveHandlerOptions

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

callback

(result: Office.AsyncResult<void>) => void

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

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

void

Комментарии

Набор обязательных элементов: DocumentEvents

removeHandlerAsync(eventType, callback)

Удаляет обработчик событий для указанного типа события.

removeHandlerAsync(eventType: Office.EventType, callback?: (result: AsyncResult<void>) => void): void;

Параметры

eventType
Office.EventType

Тип события. Для документа может быть "Document.SelectionChanged" или "Document.ActiveViewChanged".

callback

(result: Office.AsyncResult<void>) => void

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

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

void

Комментарии

Набор обязательных элементов: DocumentEvents

Примеры

// The following example removes the event handler named 'MyHandler'.
function removeSelectionChangedEventHandler() {
    Office.context.document.removeHandlerAsync(Office.EventType.DocumentSelectionChanged, {handler:MyHandler});
}

function MyHandler(eventArgs) {
    doSomethingWithDocument(eventArgs.document);
}
// The following code example uses addHandlerAsync to add an event handler for the
// ResourceSelectionChanged event and removeHandlerAsync to remove the handler.
// When a resource is selected in a resource view, the handler displays the
// resource GUID. When the handler is removed, the GUID is not displayed.
// The example assumes that your add-in has a reference to the jQuery library and
// that the following page control is defined in the content div in the page body:
// <input id="remove-handler" type="button" value="Remove handler" /><br />
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            Office.context.document.addHandlerAsync(
                Office.EventType.ResourceSelectionChanged,
                getResourceGuid);
            $('#remove-handler').on("click", removeEventHandler);
        });
    };

    // Remove the event handler.
    function removeEventHandler() {
        Office.context.document.removeHandlerAsync(
            Office.EventType.ResourceSelectionChanged,
            {handler:getResourceGuid,
            asyncContext:'The handler is removed.'},
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    $('#remove-handler').attr('disabled', 'disabled');
                    $('#message').html(result.asyncContext);
                }
            }
        );
    }

    // Get the GUID of the currently selected resource and display it in the add-in.
    function getResourceGuid() {
        Office.context.document.getSelectedResourceAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    $('#message').html('Resource GUID: ' + result.value);
                }
            }
        );
    }

    function onError(error) {
        $('#message').html(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

setResourceFieldAsync(resourceId, fieldId, fieldValue, options, callback)

Только документы проекта. Задайте поле ресурса для указанного идентификатора ресурса.

Важно! Этот API работает только в Project на рабочем столе Windows.

setResourceFieldAsync(resourceId: string, fieldId: number, fieldValue: string | number | boolean | object, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<void>) => void): void;

Параметры

resourceId

string

Строка или значение идентификатора ресурса.

fieldId

number

Поля ресурсов.

fieldValue

string | number | boolean | object

Значение целевого поля.

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<void>) => void

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

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

void

setResourceFieldAsync(resourceId, fieldId, fieldValue, callback)

Только документы проекта. Задайте поле ресурса для указанного идентификатора ресурса.

Важно! Этот API работает только в Project на рабочем столе Windows.

setResourceFieldAsync(resourceId: string, fieldId: number, fieldValue: string | number | boolean | object, callback?: (result: AsyncResult<void>) => void): void;

Параметры

resourceId

string

Строка или значение идентификатора ресурса.

fieldId

number

Поля ресурсов.

fieldValue

string | number | boolean | object

Значение целевого поля.

callback

(result: Office.AsyncResult<void>) => void

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

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

void

Примеры

// The following code example calls getSelectedResourceAsync to get the GUID of the resource that's
// currently selected in a resource view. Then it sets two resource field values by calling
// setResourceFieldAsync recursively.
// The getSelectedTaskAsync method used in the example requires that a task view
// (for example, Task Usage) is the active view and that a task is selected. See the addHandlerAsync
// method for an example that activates a button based on the active view type.
// The example assumes your add-in has a reference to the jQuery library and that the
// following page controls are defined in the content div in the page body:
// <input id="set-info" type="button" value="Set info" /><br />
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {

            // After the DOM is loaded, add-in-specific code can run.
            app.initialize();
            $('#set-info').on("click", setResourceInfo);
        });
    };

    // Get the GUID of the resource, and then get the resource fields.
    function setResourceInfo() {
        getResourceGuid().then(
            function (data) {
                setResourceFields(data);
            }
        );
    }

    // Get the GUID of the selected resource.
    function getResourceGuid() {
        const defer = $.Deferred();
        Office.context.document.getSelectedResourceAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Set the specified fields for the selected resource.
    function setResourceFields(resourceGuid) {
        const targetFields = [Office.ProjectResourceFields.StandardRate, Office.ProjectResourceFields.Notes];
        const fieldValues = [.28, 'Notes for the resource.'];

        // Set the field value. If the call is successful, set the next field.
        for (let i = 0; i < targetFields.length; i++) {
            Office.context.document.setResourceFieldAsync(
                resourceGuid,
                targetFields[i],
                fieldValues[i],
                function (result) {
                    if (result.status === Office.AsyncResultStatus.Succeeded) {
                        i++;
                    }
                    else {
                        onError(result.error);
                    }
                }
            );
        }
        $('#message').html('Field values set');
    }

    function onError(error) {
        app.showNotification(error.name + ' ' + error.code + ': ' + error.message);
    }
})();

setSelectedDataAsync(data, options, callback)

Записывает указанные данные в текущий выделенный фрагмент.

setSelectedDataAsync(data: string | TableData | any[][], options?: SetSelectedDataOptions, callback?: (result: AsyncResult<void>) => void): void;

Параметры

data

string | Office.TableData | any[][]

Заданные данные. Строка или значение Office.CoercionType , двухd-массив или объект TableData.

Если значение, переданное для data , равно:

  • Строка. Записывается обычный текст или другие данные, которые могут быть приведены к типу string. В Excel можно также указать данные в качестве допустимой формулы, чтобы добавить эту формулу в выбранную ячейку. Например, если для data указать "=SUM(A1:A5)", будут получены итоговые значения в указанном диапазоне. Если задать формулу в связанной ячейке, добавленную (или существующую) формулу в этой ячейке будет невозможно считать. При вызове метода Document.getSelectedDataAsync в выделенной ячейке для считывания ее данных этот метод может возвращать только данные, отображаемые в ячейке (результат формулы).

  • Массив массивов ("matrix"). Будут вставлены табличные данные без заголовков. Например, чтобы записать данные в три строки в двух столбцах, можно передать массив следующим образом: [["R1C1", "R1C2"], ["R2C1", "R2C2"], ["R3C1", "R3C2"]]. Чтобы записать один столбец из трех строк, передайте массив следующим образом: [["R1C1"], ["R2C1"], ["R3C1"]]

В Excel вы также можете указать data как массив массивов, содержащих допустимые формулы, чтобы добавить их в выбранные ячейки. Например, если никакие другие данные не будут перезаписываться, при задании для data двух формул [["=SUM(A1:A5)","=AVERAGE(A1:A5)"]] они также будут выбраны. Как и при указании формулы в одной ячейке в текстовом виде, добавленные (или существующие) формулы невозможно считывать после того, как они заданы. Вы можете считывать только результаты формул.

  • Объект TableData Вставляются табличные данные с заголовками. Если вы укажете в Excel формулы в объекте TableData, который вы передаете для параметра data, вы можете не получить ожидаемые результаты, потому что функция "вычисляемые столбцы" Excel автоматически копирует формулы в столбце. Чтобы обойти эту проблему, если требуется записать data формулы в выбранную таблицу, попробуйте указать данные в виде массива массивов (вместо объекта TableData) и укажите coercionType как Microsoft.Office.Matrix или matrix. Однако этот метод блокирует функцию "вычисляемых столбцов", только если выполняется одно из следующих условий: (1) выполняется запись во все ячейки столбца или (2) в столбце уже есть по крайней мере две разные формулы.
options
Office.SetSelectedDataOptions

Предоставляет варианты вставки данных в выделенный фрагмент.

callback

(result: Office.AsyncResult<void>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство AsyncResult.value всегда возвращает, undefined так как нет объекта или данных для извлечения.

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

void

Комментарии

Наборы обязательных элементов:

  • HtmlCoercion, (при использовании Office.CoercionType.Html)

  • ImageCoercion 1.1 (при использовании Office.CoercionType.Image)

  • MatrixCoercion (при использовании Office.CoercionType.Matrix)

  • OoxmlCoercion (при использовании Office.CoercionType.Ooxml)

  • Selection

  • TableCoercion (при использовании Office.CoercionType.Table)

  • TextCoercion (при использовании Office.CoercionType.Text)

  • ImageCoercion 1.2 (при использовании Office.CoercionType.XmlSvg)

Поведение, связанное с определенными приложениями

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

Приложение Условие Поведение
Word Если выделение отсутствует и точка вставки находится в допустимом месте, указанный data вставляется в точке вставки. Если data является строкой, вставляется указанный текст.
Если data является массивом массивов ("матрица") или объектом TableData, вставляется новая Word таблица.
Если данные — HTML, вставляется указанный HTML-код. (**Важно***: если какой-либо из вставляемых HTML-кодов является недопустимым, Word не вызовет ошибку. Word вставляет как можно больше HTML-кода и пропускает недопустимые данные).
Если data имеет значение Office Open XML, вставляется указанный XML-код.
Если data является потоком изображений в кодировке Base64, то вставляется указанное изображение.
Если есть выбор Он будет заменен указанными data ниже правилами, указанными выше.
Вставка изображений Вставленные изображения размещаются в встроенной строке. Параметры imageLeft и imageTop игнорируются. Пропорции изображения всегда блокируются. Если задан только параметр imageWidth или imageHeight, второе значение будет подобрано автоматически с учетом исходных пропорций.
Excel Если выбрана одна ячейка Если data является строкой, указанный текст вставляется в качестве значения текущей ячейки.
Если data является массивом массивов ("матрица"), вставляется указанный набор строк и столбцов, если другие данные в окружающих ячейках не будут перезаписаны.
Если data является объектом TableData, вставляется новая таблица Excel с указанным набором строк и заголовков, если никакие другие данные в окружающих ячейках не будут перезаписаны.
Если выбрано несколько ячеек Если фигура не соответствует фигуре data, возвращается ошибка.
Если форма выделенного фрагмента точно соответствует форме data, значения выбранных ячеек обновляются на основе значений в data.
Вставка изображений Вставляются плавающие изображения. Параметры position imageLeft и imageTop относительно выбранных в данный момент ячеек. Отрицательные значения imageLeft и imageTop допустимы и могут быть откорректированы Excel для размещения изображения в пределах листа. Пропорции изображения блокируются, если не указан каждый из параметров imageWidth и imageHeight. Если задан только параметр imageWidth или только параметр imageHeight, второе значение будет подобрано автоматически с учетом исходных пропорций.
Все остальные варианты Возвращается ошибка.
Excel в Интернете Помимо описанных выше действий для Excel, эти ограничения применяются при записи данных в Excel в Интернете Общее количество ячеек, которые можно записать на лист с параметром data , не может превышать 20 000 в одном вызове этого метода.
Число групп форматирования, передаваемых параметру cellFormat , не может превышать 100. Одна группа форматирования состоит из набора вариантов форматирования, применяемого к указанному диапазону ячеек.
PowerPoint Вставка изображения Вставляются плавающие изображения. Параметры position imageLeft и imageTop являются необязательными, но если они указаны, они должны присутствовать. Если указано одно значение, оно игнорируется. Отрицательные значения imageLeft и imageTop допустимы и позволяют разместить изображение за пределами слайда. Если не указано ни одного необязательного параметра, а слайд содержит заполнитель, изображение заменит заполнитель в слайде. Пропорции изображения блокируются, если не указан каждый из параметров imageWidth и imageHeight. Если задан только параметр imageWidth или только параметр imageHeight, второе значение будет подобрано автоматически с учетом исходных пропорций.

Приложения

Возможные значения параметра Office.CoercionType зависят от приложения Office.

CoercionType Поддерживаемые приложения
Office.CoercionType.Html
  • Word
Office.CoercionType.Matrix (массив массивов)
  • Excel
  • Word
Office.CoercionType.Ooxml (Office Open XML)
  • Word
Office.CoercionType.SlideRange
  • PowerPoint в Интернете и в Windows
Office.CoercionType.Table (объект TableData)
  • Excel
  • Word
Office.CoercionType.Text (строка)
  • Excel
  • PowerPoint
  • Project
  • Word
Office.CoercionType.XmlSvg
  • Excel в Windows и Mac
  • PowerPoint в Интернете в Windows и Mac
  • Word в Windows и Mac

Примеры

// The following example sets the selected text or cell to "Hello World!", 
// and if that fails, displays the value of the error.message property.
function writeText() {
    Office.context.document.setSelectedDataAsync("Hello World!",
        function (asyncResult) {
            const error = asyncResult.error;
            if (asyncResult.status === Office.AsyncResultStatus.Failed){
                write(error.name + ": " + error.message);
            }
        });
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

// Specifying the optional coercionType parameter lets you specify the kind of data you want to write
// to a selection. The following example writes data as an array of three rows of two columns, 
// specifying the coercionType as `Matrix` for that data structure, and if that fails, 
// displays the value of the error.message property.
function writeMatrix() {
    Office.context.document.setSelectedDataAsync(
        [["Red", "Rojo"], ["Green", "Verde"], ["Blue", "Azul"]],
        {coercionType: Office.CoercionType.Matrix}
        function (asyncResult) {
            const error = asyncResult.error;
            if (asyncResult.status === Office.AsyncResultStatus.Failed){
                write(error.name + ": " + error.message);
            }
        });
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

// The following example writes data as a one column table with a header and four rows, 
// specifying the coercionType as `Table` for that data structure, and if that fails, 
// displays the value of the error.message property.
function writeTable() {
    // Build table.
    const myTable = new Office.TableData();
    myTable.headers = [["Cities"]];
    myTable.rows = [['Berlin'], ['Roma'], ['Tokyo'], ['Seattle']];

    // Write table.
    Office.context.document.setSelectedDataAsync(myTable, {coercionType: Office.CoercionType.Table},
        function (result) {
            const error = result.error
            if (result.status === Office.AsyncResultStatus.Failed) {
                write(error.name + ": " + error.message);
            }
    });
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

// In Word if you want to write HTML to the selection, you can specify the coercionType parameter as `Html`
// as shown in the following example, which uses HTML <b> tags to make "Hello" bold.
function writeHtmlData() {
    Office.context.document.setSelectedDataAsync(
        "<b>Hello</b> World!", {coercionType: Office.CoercionType.Html}, function (asyncResult) {
            if (asyncResult.status === Office.AsyncResultStatus.Failed) {
                write('Error: ' + asyncResult.error.message);
            }
    });
}

// Function that writes to a div with id='message' on the page.
function write(message){
    document.getElementById('message').innerText += message; 
}

// In Word, PowerPoint, or Excel, if you want to write an image to the selection, you can specify the coercionType
// parameter as `Image` as shown in the following example. Note that imageLeft and imageTop are ignored by Word.
function insertPictureAtSelection(base64EncodedImageStr) {

    Office.context.document.setSelectedDataAsync(base64EncodedImageStr, {
        coercionType: Office.CoercionType.Image,
        imageLeft: 50,
        imageTop: 50,
        imageWidth: 100,
        imageHeight: 100
    },
    function (asyncResult) {
        if (asyncResult.status === Office.AsyncResultStatus.Failed) {
            console.log("Action failed with error: " + asyncResult.error.message);
        }
    });
}

// In Word, PowerPoint, or Excel, if you want to write an scalable vector graphic (SVG) to the selection, you can specify the 
// coercionType parameter as `XmlSvg` as shown in the following example. Note that imageLeft and imageTop are ignored by Word.
function insertSvgAtSelection(base64EncodedImageStr) {
    Office.context.document.setSelectedDataAsync(getImageAsBase64String(), {
        coercionType: Office.CoercionType.XmlSvg,
        imageLeft: 50,
        imageTop: 50,
        imageWidth: 400
    },
        function (asyncResult) {
            if (asyncResult.status === Office.AsyncResultStatus.Failed) {
                console.log(asyncResult.error.message);
            }
        });
}

setSelectedDataAsync(data, callback)

Записывает указанные данные в текущий выделенный фрагмент.

setSelectedDataAsync(data: string | TableData | any[][], callback?: (result: AsyncResult<void>) => void): void;

Параметры

data

string | Office.TableData | any[][]

Заданные данные. Строка или значение Office.CoercionType , двухd-массив или объект TableData.

Если значение, переданное для data , равно:

  • Строка. Записывается обычный текст или другие данные, которые могут быть приведены к типу string. В Excel можно также указать данные в качестве допустимой формулы, чтобы добавить эту формулу в выбранную ячейку. Например, если для data указать "=SUM(A1:A5)", будут получены итоговые значения в указанном диапазоне. Если задать формулу в связанной ячейке, добавленную (или существующую) формулу в этой ячейке будет невозможно считать. При вызове метода Document.getSelectedDataAsync в выделенной ячейке для считывания ее данных этот метод может возвращать только данные, отображаемые в ячейке (результат формулы).

  • Массив массивов ("matrix"). Будут вставлены табличные данные без заголовков. Например, чтобы записать данные в три строки в двух столбцах, можно передать массив следующим образом: [["R1C1", "R1C2"], ["R2C1", "R2C2"], ["R3C1", "R3C2"]]. Чтобы записать один столбец из трех строк, передайте массив следующим образом: [["R1C1"], ["R2C1"], ["R3C1"]]

В Excel вы также можете указать data как массив массивов, содержащих допустимые формулы, чтобы добавить их в выбранные ячейки. Например, если никакие другие данные не будут перезаписываться, при задании для data двух формул [["=SUM(A1:A5)","=AVERAGE(A1:A5)"]] они также будут выбраны. Как и при указании формулы в одной ячейке в текстовом виде, добавленные (или существующие) формулы невозможно считывать после того, как они заданы. Вы можете считывать только результаты формул.

  • Объект TableData Вставляются табличные данные с заголовками. Если вы укажете в Excel формулы в объекте TableData, который вы передаете для параметра data, вы можете не получить ожидаемые результаты, потому что функция "вычисляемые столбцы" Excel автоматически копирует формулы в столбце. Чтобы обойти эту проблему, если требуется записать data формулы в выбранную таблицу, попробуйте указать данные в виде массива массивов (вместо объекта TableData) и укажите coercionType как Microsoft.Office.Matrix или matrix. Однако этот метод блокирует функцию "вычисляемых столбцов", только если выполняется одно из следующих условий: (1) выполняется запись во все ячейки столбца или (2) в столбце уже есть по крайней мере две разные формулы.
callback

(result: Office.AsyncResult<void>) => void

Необязательный параметр. Функция, вызываемая при возврате обратного вызова, единственный параметр которой имеет тип Office.AsyncResult. Свойство AsyncResult.value всегда возвращает, undefined так как нет объекта или данных для извлечения.

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

void

Комментарии

Наборы обязательных элементов:

  • HtmlCoercion, (при использовании Office.CoercionType.Html)

  • ImageCoercion (при использовании Office.CoercionType.Image)

  • MatrixCoercion (при использовании Office.CoercionType.Matrix)

  • OoxmlCoercion (при использовании Office.CoercionType.Ooxml)

  • Selection

  • TableCoercion (при использовании Office.CoercionType.Table)

  • TextCoercion (при использовании Office.CoercionType.Text)

  • ImageCoercion 1.2 (при использовании Office.CoercionType.XmlSvg)

Поведение, связанное с определенными приложениями

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

Приложение Условие Поведение
Word Если выделения нет и точка вставки находится в допустимом расположении, указанные "данные" вставляются в точку вставки. Если data является строкой, вставляется указанный текст.
Если data является массивом массивов ("матрица") или объектом TableData, вставляется новая Word таблица.
Если data имеет значение HTML, вставляется указанный HTML-код. (**Важно***: если какой-либо из вставляемых HTML-кодов является недопустимым, Word не вызовет ошибку. Word вставляет как можно больше HTML-кода и пропускает недопустимые данные).
Если data имеет значение Office Open XML, вставляется указанный XML-код.
Если data является потоком изображений в кодировке Base64, то вставляется указанное изображение.
Если есть выбор Он будет заменен указанными data ниже правилами, указанными выше.
Вставка изображений Вставленные изображения размещаются в встроенной строке. Параметры imageLeft и imageTop игнорируются. Пропорции изображения всегда блокируются. Если задан только параметр imageWidth или imageHeight, второе значение будет подобрано автоматически с учетом исходных пропорций.
Excel Если выбрана одна ячейка Если data является строкой, указанный текст вставляется в качестве значения текущей ячейки.
Если data является массивом массивов ("матрица"), вставляется указанный набор строк и столбцов, если другие данные в окружающих ячейках не будут перезаписаны.
Если data является объектом TableData, вставляется новая таблица Excel с указанным набором строк и заголовков, если никакие другие данные в окружающих ячейках не будут перезаписаны.
Если выбрано несколько ячеек Если фигура не соответствует фигуре data, возвращается ошибка.
Если форма выделенного фрагмента точно соответствует форме data, значения выбранных ячеек обновляются на основе значений в data.
Вставка изображений Вставляются плавающие изображения. Параметры position imageLeft и imageTop относительно выбранных в данный момент ячеек. Отрицательные значения imageLeft и imageTop допустимы и могут быть откорректированы Excel для размещения изображения в пределах листа. Пропорции изображения блокируются, если не указан каждый из параметров imageWidth и imageHeight. Если задан только параметр imageWidth или только параметр imageHeight, второе значение будет подобрано автоматически с учетом исходных пропорций.
Все остальные варианты Возвращается ошибка.
Excel в Интернете Помимо описанных выше действий для Excel, эти ограничения применяются при записи данных в Excel в Интернете Общее количество ячеек, которые можно записать на лист с параметром data , не может превышать 20 000 в одном вызове этого метода.
Число групп форматирования, передаваемых параметру cellFormat , не может превышать 100. Одна группа форматирования состоит из набора вариантов форматирования, применяемого к указанному диапазону ячеек.
PowerPoint Вставка изображения Вставляются плавающие изображения. Параметры position imageLeft и imageTop являются необязательными, но если они указаны, они должны присутствовать. Если указано одно значение, оно игнорируется. Отрицательные значения imageLeft и imageTop допустимы и позволяют разместить изображение за пределами слайда. Если не указано ни одного необязательного параметра, а слайд содержит заполнитель, изображение заменит заполнитель в слайде. Пропорции изображения блокируются, если не указан каждый из параметров imageWidth и imageHeight. Если задан только параметр imageWidth или только параметр imageHeight, второе значение будет подобрано автоматически с учетом исходных пропорций.

Приложения

Возможные значения параметра Office.CoercionType зависят от приложения Office.

CoercionType Поддерживаемые приложения
Office.CoercionType.Html
  • Word
Office.CoercionType.Matrix (массив массивов)
  • Excel
  • Word
Office.CoercionType.Ooxml (Office Open XML)
  • Word
Office.CoercionType.SlideRange
  • PowerPoint в Интернете и в Windows
Office.CoercionType.Table (объект TableData)
  • Excel
  • Word
Office.CoercionType.Text (строка)
  • Excel
  • PowerPoint
  • Project
  • Word
Office.CoercionType.XmlSvg
  • Excel в Windows и Mac
  • PowerPoint в Интернете в Windows и Mac
  • Word в Windows и Mac

setTaskFieldAsync(taskId, fieldId, fieldValue, options, callback)

Только документы проекта. Задайте поле задачи для указанного идентификатора задачи.

Важно! Этот API работает только в Project на рабочем столе Windows.

setTaskFieldAsync(taskId: string, fieldId: number, fieldValue: string | number | boolean | object, options?: Office.AsyncContextOptions, callback?: (result: AsyncResult<void>) => void): void;

Параметры

taskId

string

Строка или значение идентификатора задачи.

fieldId

number

Поля задачи.

fieldValue

string | number | boolean | object

Значение целевого поля.

options
Office.AsyncContextOptions

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

callback

(result: Office.AsyncResult<void>) => void

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

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

void

setTaskFieldAsync(taskId, fieldId, fieldValue, callback)

Только документы проекта. Задайте поле задачи для указанного идентификатора задачи.

Важно! Этот API работает только в Project на рабочем столе Windows.

setTaskFieldAsync(taskId: string, fieldId: number, fieldValue: string | number | boolean | object, callback?: (result: AsyncResult<void>) => void): void;

Параметры

taskId

string

Строка или значение идентификатора задачи.

fieldId

number

Поля задачи.

fieldValue

string | number | boolean | object

Значение целевого поля.

callback

(result: Office.AsyncResult<void>) => void

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

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

void

Примеры

// The following code example calls getSelectedTaskAsync to get the GUID of the task that's
// currently selected in a task view. Then it sets two task field values by calling
// setTaskFieldAsync recursively.
// The getSelectedTaskAsync method used in the example requires that a task view
// (for example, Task Usage) is the active view and that a task is selected. See the
// addHandlerAsync method for an example that activates a button based on the active view type.
// The example assumes your add-in has a reference to the jQuery library and that the
// following page controls are defined in the content div in the page body:
// <input id="set-info" type="button" value="Set info" /><br />
// <span id="message"></span>

(function () {
    "use strict";

    // The initialize function must be run each time a new page is loaded.
    Office.initialize = function (reason) {
        $(document).ready(function () {
            
            // After the DOM is loaded, add-in-specific code can run.
            app.initialize();
            $('#set-info').on("click", setTaskInfo);
        });
    };

    // Get the GUID of the task, and then get the task fields.
    function setTaskInfo() {
        getTaskGuid().then(
            function (data) {
                setTaskFields(data);
            }
        );
    }

    // Get the GUID of the selected task.
    function getTaskGuid() {
        const defer = $.Deferred();
        Office.context.document.getSelectedTaskAsync(
            function (result) {
                if (result.status === Office.AsyncResultStatus.Failed) {
                    onError(result.error);
                }
                else {
                    defer.resolve(result.value);
                }
            }
        );
        return defer.promise();
    }

    // Set the specified fields for the selected task.
    function setTaskFields(taskGuid) {
        const targetFields = [Office.ProjectTaskFields.Active, Office.ProjectTaskFields.Notes];
        const fieldValues = [true, 'Notes for the task.'];

        // Set the field value. If the call is successful, set the next field.
        for (let i = 0; i < targetFields.length; i++) {
            Office.context.document.setTaskFieldAsync(
                taskGuid,
                targetFields[i],
                fieldValues[i],
                function (result) {
                    if (result.status === Office.AsyncResultStatus.Succeeded) {
                        i++;
                    }
                    else {
                        onError(result.error);
                    }
                }
            );
        }
        $('#message').html('Field values set');
    }

    function onError(error) {
        app.showNotification(error.name + ' ' + error.code + ': ' + error.message);
    }
})();