Office.File interface

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

Комментарии

Доступ к объекту File с помощью свойства AsyncResult.value в функции обратного вызова, переданной методу Document.getFileAsync.

Свойства

size

Получает размер файла в байтах.

sliceCount

Получает число срезов, на которые разделен файл.

Методы

closeAsync(callback)

Закрывает файл документа.

getSliceAsync(sliceIndex, callback)

Возвращает заданный срез.

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

size

Получает размер файла в байтах.

size: number;

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

number

sliceCount

Получает число срезов, на которые разделен файл.

sliceCount: number;

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

number

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

closeAsync(callback)

Закрывает файл документа.

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

Параметры

callback

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

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

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

void

Комментарии

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

В памяти может храниться не более двух документов; в противном случае произойдет сбой операции Document.getFileAsync. Используйте метод File.closeAsync, чтобы закрыть файл после завершения работы с ним.

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

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

getSliceAsync(sliceIndex, callback)

Возвращает заданный срез.

getSliceAsync(sliceIndex: number, callback?: (result: AsyncResult<Office.Slice>) => void): void;

Параметры

sliceIndex

number

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

callback

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

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

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

void

Комментарии

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

В функции обратного вызова, переданной в метод getSliceAsync, можно использовать свойства объекта AsyncResult, чтобы возвратить такие сведения:

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

Примеры

// This sample shows how to get all the slices of a file. 
// The asynchronous operation returns a Promise so it can be awaited.
private getAllSlices(file: any): Promise<any> {
    const self = this;
    let isError = false;

    return new Promise(async (resolve, reject) => {
        let documentFileData = [];
        for (let sliceIndex = 0; (sliceIndex < file.sliceCount) && !isError; sliceIndex++) {
            const sliceReadPromise = new Promise((sliceResolve, sliceReject) => {
                file.getSliceAsync(sliceIndex, (asyncResult) => {
                    if (asyncResult.status === Office.AsyncResultStatus.Succeeded) {
                        documentFileData = documentFileData.concat(asyncResult.value.data);
                        sliceResolve({
                            IsSuccess: true,
                            Data: documentFileData
                        });
                    } else {
                        file.closeAsync();
                        sliceReject({
                            IsSuccess: false,
                            ErrorMessage: `Error in reading the slice: ${sliceIndex} of the document`
                        });
                    }
                });
            });
            await sliceReadPromise.catch((error) => {
                isError = true;
            });
        }

        if (isError || !documentFileData.length) {
            reject('Error while reading document. Please try it again.');
            return;
        }

        file.closeAsync();

        resolve({
            IsSuccess: true,
            Data: documentFileData
        });
    });
}