Freigeben über


Office.File interface

Stellt die einem Office Add-In zugeordnete Dokumentdatei dar.

Hinweise

Greifen Sie auf das File-Objekt mit der Eigenschaft AsyncResult.value in der Rückruffunktion zu, die an die Document.getFileAsync-Methode übergeben wird.

Eigenschaften

size

Ruft die Größe der Dokumentdatei in Byte ab.

sliceCount

Ruft die Anzahl der Segmente ab, in die die Datei aufgeteilt ist.

Methoden

closeAsync(callback)

Schließt die Dokumentdatei.

getSliceAsync(sliceIndex, callback)

Gibt das angegebene Segment zurück.

Details zur Eigenschaft

size

Ruft die Größe der Dokumentdatei in Byte ab.

size: number;

Eigenschaftswert

number

sliceCount

Ruft die Anzahl der Segmente ab, in die die Datei aufgeteilt ist.

sliceCount: number;

Eigenschaftswert

number

Details zur Methode

closeAsync(callback)

Schließt die Dokumentdatei.

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

Parameter

callback

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

Optional. Eine Funktion, die aufgerufen wird, wenn der Rückruf zurückgibt, deren einziger Parameter vom Typ Office.AsyncResult ist.

Gibt zurück

void

Hinweise

Anforderungssatz: Datei

Im Speicher dürfen sich höchstens zwei Dokumente befinden, andernfalls schlägt der Document.getFileAsync-Vorgang fehl. Schließen Sie die Datenbank mit der File.closeAsync-Methode, wenn Sie sie wieder freigeben möchten.

In der Rückruffunktion, die an die closeAsync-Methode weitergegeben wird, können Sie die Eigenschaften des AsyncResult-Objekts verwenden, um die folgenden Informationen zurückzugeben.

Eigenschaft Verwendung
AsyncResult.value Gibt immer zurück undefined , da kein Objekt oder keine Daten abgerufen werden können.
AsyncResult.status Bestimmen Sie, ob der Vorgang erfolgreich war oder ein Fehler aufgetreten ist.
AsyncResult.error Greifen Sie auf ein Error-Objekt zu, das nach einem fehlgeschlagenen Vorgang Fehlerinformationen bereitstellt.
AsyncResult.asyncContext Definieren Sie ein Element eines beliebigen Typs, der im AsyncResult-Objekt zurückgegeben wird, ohne geändert zu werden.

getSliceAsync(sliceIndex, callback)

Gibt das angegebene Segment zurück.

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

Parameter

sliceIndex

number

Gibt den nullbasierten Index für das abzurufende Segment an. Erforderlich.

callback

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

Optional. Eine Funktion, die aufgerufen wird, wenn der Rückruf zurückgibt, deren einziger Parameter vom Typ Office.AsyncResult ist. Die value -Eigenschaft des Ergebnisses ist das Office.Slice-Objekt .

Gibt zurück

void

Hinweise

Anforderungssatz: Datei

In der callback-Funktion, die an die getSliceAsync-Methode weitergegeben wird, können Sie die Eigenschaften des AsyncResult-Objekts verwenden, um die folgenden Informationen zurückzugeben.

Eigenschaft Verwendung
AsyncResult.value Zugriff auf das Slice-Objekt.
AsyncResult.status Bestimmen Sie, ob der Vorgang erfolgreich war oder ein Fehler aufgetreten ist.
AsyncResult.error Greifen Sie auf ein Error-Objekt zu, das nach einem fehlgeschlagenen Vorgang Fehlerinformationen bereitstellt.
AsyncResult.asyncContext Definieren Sie ein Element eines beliebigen Typs, der im AsyncResult-Objekt zurückgegeben wird, ohne geändert zu werden.

Beispiele

// 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
        });
    });
}