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

注釈

要件セット: ファイル

2 つ以上のドキュメントがメモリに存在する場合、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. Required.

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> {
    var self = this;
    var isError = false;

    return new Promise(async (resolve, reject) => {
        var documentFileData = [];
        for (var sliceIndex = 0; (sliceIndex < file.sliceCount) && !isError; sliceIndex++) {
            var 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
        });
    });
}