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.

Beispiele

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/26-document/get-file-in-slices-async.yaml

function getCurrentFile() {
    const sliceSize = 4096; /*Bytes*/

    // This snippet specifies a small slice size to show how the getFileAsync() method uses slices.
    Office.context.document.getFileAsync(Office.FileType.Compressed, { sliceSize: sliceSize }, function(result) {
        if (result.status === Office.AsyncResultStatus.Failed) {
            return onError(result.error);
        }

        // result.value is the File object.
        const file: Office.File = result.value
        getFileContents(file, onSuccess, onError); /* getFileContents is defined in the Office.File.getSliceAsync example. */
    });

    function onError(error: Office.Error): void {
        console.error(error);
    }

    function onSuccess(byteArray: number[]) {
        let base64string = base64js.fromByteArray(byteArray);
        // Do something with the file contents.
    }
}

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

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/excel/26-document/get-file-in-slices-async.yaml

function getFileContents(
    file: Office.File,
    onSuccess: (byteArray: number[]) => void,
    onError: (error: Office.Error) => void
) {
    let expectedSliceCount = file.sliceCount;
    let fileSlices: Array<Array<number>> = [];

    console.log("Current file size in bytes: " + file.size);
    console.log("Number of file slices: " + file.sliceCount);

    getFileContentsHelper();

    /**
     * A helper function to retrieve all slices of the file recursively.
     * It fetches one slice at a time and stores it in the `fileSlices` array.
     * The recursion terminates when all slices have been retrieved.
     */
    function getFileContentsHelper() {
        file.getSliceAsync(fileSlices.length, function(result) {
            if (result.status === Office.AsyncResultStatus.Failed) {
                file.closeAsync();
                return onError(result.error);
            }

            // Got one slice, store it in a temporary array.
            fileSlices.push(result.value.data);

            if (fileSlices.length == expectedSliceCount) {
                console.log("All slices have been received.");
                file.closeAsync();

                let array = [];
                fileSlices.forEach((slice) => {
                    array = array.concat(slice);
                });

                onSuccess(array); /* onSuccess is defined in the Office.File example. */
            } else {
                getFileContentsHelper();
            }
        });
    }
}