Share via


Office.File interface

Representa el archivo de documento asociado a un complemento de Office.

Comentarios

Acceda al objeto File con la propiedad AsyncResult.value en la función de devolución de llamada pasada al método Document.getFileAsync.

Propiedades

size

Obtiene el tamaño del archivo de documento en bytes.

sliceCount

Obtiene el número de segmentos en los que está dividido el archivo.

Métodos

closeAsync(callback)

Cierra el archivo de documento.

getSliceAsync(sliceIndex, callback)

Devuelve el segmento especificado.

Detalles de las propiedades

size

Obtiene el tamaño del archivo de documento en bytes.

size: number;

Valor de propiedad

number

sliceCount

Obtiene el número de segmentos en los que está dividido el archivo.

sliceCount: number;

Valor de propiedad

number

Detalles del método

closeAsync(callback)

Cierra el archivo de documento.

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

Parámetros

callback

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

Opcional. Función que se invoca cuando se devuelve la devolución de llamada, cuyo único parámetro es de tipo Office.AsyncResult.

Devoluciones

void

Comentarios

Conjunto de requisitos: Archivo

No se permite que haya más de dos documentos en la memoria; de lo contrario, la operación Document.getFileAsync fallará. Use el método File.closeAsync para cerrar el archivo cuando haya terminado de trabajar con él.

En la función de devolución de llamada que se ha remitido al método closeAsync, puede usar las propiedades del objeto AsyncResult para devolver la siguiente información.

Propiedad Utilice
AsyncResult.value Siempre devuelve undefined porque no hay ningún objeto o datos que recuperar.
AsyncResult.status Determinar si la operación se ha completado correctamente o no.
AsyncResult.error Tener acceso a un objeto Error que proporcione información sobre el error si la operación no se ha llevado a cabo correctamente.
AsyncResult.asyncContext Defina un elemento de cualquier tipo que se devuelva en el objeto AsyncResult sin modificarse.

getSliceAsync(sliceIndex, callback)

Devuelve el segmento especificado.

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

Parámetros

sliceIndex

number

Especifica el índice de base cero del segmento que hay que recuperar. Obligatorio.

callback

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

Opcional. Función que se invoca cuando se devuelve la devolución de llamada, cuyo único parámetro es de tipo Office.AsyncResult. La value propiedad del resultado es el objeto Office.Slice .

Devoluciones

void

Comentarios

Conjunto de requisitos: Archivo

In the callback function passed to the getSliceAsync method, you can use the properties of the AsyncResult object to return the following information.

Propiedad Utilice
AsyncResult.value Tener acceso al objeto Slice.
AsyncResult.status Determinar si la operación se ha completado correctamente o no.
AsyncResult.error Tener acceso a un objeto Error que proporcione información sobre el error si la operación no se ha llevado a cabo correctamente.
AsyncResult.asyncContext Defina un elemento de cualquier tipo que se devuelva en el objeto AsyncResult sin modificarse.

Ejemplos

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