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


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, чтобы получить следующие сведения.

Property Использовать
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, чтобы возвратить такие сведения:

Property Использовать
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
        });
    });
}