Office.File interface

表示与 Office 外接程序关联的文档文件。

注解

使用传递给 Document.getFileAsync 方法的回调函数中的 AsyncResult.value 属性访问 File 对象。

属性

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

Specifies the zero-based index of the slice to be retrieved. 必填。

callback

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

可选。 回调返回时调用的函数,其唯一参数的类型为 Office.AsyncResultvalue结果的 属性是 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
        });
    });
}