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. |
| slice |
Ruft die Anzahl der Segmente ab, in die die Datei aufgeteilt ist. |
Methoden
| close |
Schließt die Dokumentdatei. |
| get |
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();
}
});
}
}