Share via


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. 必須です。

callback

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

省略可能です。 コールバックから戻るときに呼び出される関数。パラメーターは Office.AsyncResult 型のみです。 結果のプロパティは valueOffice.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
        });
    });
}