Office.File interface
Représente le fichier du document associé à un complément Office.
Remarques
Accédez à l’objet File avec la propriété AsyncResult.value dans la fonction de rappel transmise à la méthode Document.getFileAsync.
Exemples
// 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.
}
}
Propriétés
| size | Obtient la taille du fichier de document en octets. |
| slice |
Obtient le nombre de sections du fichier divisé. |
Méthodes
| close |
Ferme le fichier de document. |
| get |
Retourne la section spécifiée. |
Détails de la propriété
size
Obtient la taille du fichier de document en octets.
size: number;
Valeur de propriété
number
sliceCount
Obtient le nombre de sections du fichier divisé.
sliceCount: number;
Valeur de propriété
number
Détails de la méthode
closeAsync(callback)
Ferme le fichier de document.
closeAsync(callback?: (result: AsyncResult<void>) => void): void;
Paramètres
- callback
-
(result: Office.AsyncResult<void>) => void
Facultatif. Fonction appelée lorsque le rappel est retourné, dont le seul paramètre est de type Office.AsyncResult.
Retours
void
Remarques
Ensemble de conditions requises : Fichier
Au maximum deux documents sont autorisés à se trouver en mémoire ; autrement, l’opération Document.getFileAsync échoue. Utilisez la méthode File.closeAsync pour fermer le fichier lorsque vous avez terminé de l’utiliser.
Dans la fonction de rappel passée à la méthode closeAsync, vous pouvez utiliser les propriétés de l’objet AsyncResult pour renvoyer les informations suivantes.
| Propriété | Utilisation |
|---|---|
AsyncResult.value | Retourne undefined toujours, car il n’y a pas d’objet ou de données à récupérer. |
AsyncResult.status | Déterminer si l’opération a réussi ou échoué. |
AsyncResult.error | Accéder à un objet Error fournissant des informations sur l’erreur en cas d’échec de l’opération. |
AsyncResult.asyncContext | Définissez un élément de tout type retourné dans l’objet AsyncResult sans être modifié. |
getSliceAsync(sliceIndex, callback)
Retourne la section spécifiée.
getSliceAsync(sliceIndex: number, callback?: (result: AsyncResult<Office.Slice>) => void): void;
Paramètres
- sliceIndex
-
number
Spécifie l’index de base zéro de la section à récupérer. Obligatoire.
- callback
-
(result: Office.AsyncResult<Office.Slice>) => void
Facultatif. Fonction appelée lorsque le rappel est retourné, dont le seul paramètre est de type Office.AsyncResult. La value propriété du résultat est l’objet Office.Slice .
Retours
void
Remarques
Ensemble de conditions requises : Fichier
Dans la fonction de rappel passée à la méthode getSliceAsync, vous pouvez utiliser les propriétés de l’objet AsyncResult pour renvoyer les informations suivantes.
| Propriété | Utilisation |
|---|---|
AsyncResult.value | Accéder à l’objet Slice. |
AsyncResult.status | Déterminer si l’opération a réussi ou échoué. |
AsyncResult.error | Accéder à un objet Error fournissant des informations sur l’erreur en cas d’échec de l’opération. |
AsyncResult.asyncContext | Définissez un élément de tout type retourné dans l’objet AsyncResult sans être modifié. |
Exemples
// 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();
}
});
}
}