Compartir a través de


Solución de problemas de complementos de Word

En este artículo se describe la solución de problemas que son únicos para Word. Use la herramienta de comentarios al final de la página para sugerir otros problemas que se pueden agregar a este artículo.

No se reconocen todos los intervalos seleccionados

Si se realizan selecciones no contiguas, la API de Word solo funciona en el último intervalo contiguo de la selección. Un caso inesperado de esto es cuando selecciona una columna de una tabla y, a continuación, llama a, por ejemplo, Document.getSelection, solo la API devuelve la celda final de la selección. Aunque la selección de una columna parece contigua, la API la reconoce como una selección no contigua (por ejemplo, una celda por fila).

Para obtener más información sobre cómo realizar selecciones no contiguas, consulte Selección de elementos que no están juntos.

Las anotaciones no funcionan

Si las API de anotación no funcionan, puede deberse a que no usa una suscripción de Microsoft 365. Si usa una licencia de compra única, esta podría ser la razón por la que estas API no funcionan para usted.

Las API de anotación se basan en un servicio que requiere una suscripción a Microsoft 365. Por lo tanto, compruebe que está ejecutando el complemento en Word conectado a una licencia de suscripción de Microsoft 365 antes de depurar más.

Para más información sobre este problema, consulte el problema 4953 de GitHub.

Por diseño, el método Body.insertFileFromBase64 excluye cualquier encabezado o pie de página que estuviera en el archivo de origen.

Para incluir los encabezados o pies de página del archivo de origen, use Document.insertFileFromBase64 en su lugar.

No se puede usar Mixed para establecer una propiedad

Varias enumeraciones de Word ofrecen "Mixed" como un valor válido. Sin embargo, el valor se puede devolver principalmente cuando se obtiene una propiedad o se realiza una llamada a la API get*. Esto se debe a que "Mixed" significa que se aplican varias opciones a la selección actual. Si intenta establecer la opción en "Mixed", no está claro qué valor real se debe aplicar a la selección.

Por ejemplo, supongamos que está trabajando con los bordes alrededor de una sección de texto. Cada borde se puede establecer en un ancho diferente. Si el borde superior es "Pt025" (es decir, 0,25 puntos), el borde inferior es "None" y los bordes izquierdo y derecho son "Pt050" (es decir, 0,50 puntos), y, cuando se obtiene el ancho de los bordes, se devuelve "Mixed". Si desea cambiar el ancho de los bordes, llame a la API establecida en cada borde mediante un valor de enumeración distinto mixedde .

Este comportamiento también se aplica a valores de enumeración como "Unknown".

Obtener una excepción GeneralException al trabajar con estilos

Si los usuarios alcanzan una excepción GeneralException cuando el complemento llama a Document.insertFileFromBase64 o a las API de estilo, es posible que esos usuarios superen los límites impuestos por la aplicación Word. Para obtener más información sobre estos límites, consulte Limitaciones y especificaciones de parámetros operativos en Word.

El diseño se interrumpe al usar insertHtml mientras el cursor está en el control de contenido en el encabezado

Este problema puede producirse cuando se cumplen las tres condiciones siguientes.

  1. Tenga al menos un control de contenido en el encabezado y al menos uno en el pie de página del documento Word.
  2. Asegúrese de que el cursor está dentro de un control de contenido en el encabezado.
  3. Llame a insertHtml para establecer un control de contenido en el pie de página.

A continuación, el pie de página se mezcla inesperadamente con el encabezado . Para evitarlo, borre el control de contenido en el pie de página antes de establecerlo, como se muestra en el ejemplo de código siguiente.

await Word.run(async (context) => {
    // Credit to https://github.com/barisbikmaz for this version of the workaround.
    // For more information, see https://github.com/OfficeDev/office-js/issues/129.

    // Let's say there are 2 content controls in the header and 1 in the footer.
    const contentControls = context.document.contentControls;
    contentControls.load();

    await context.sync().then(function () {
        // Clear the 2 content controls in the header.
        contentControls.items[0].clear(); 
        contentControls.items[1].clear();

        // Clear the control control in the footer then update it.
        contentControls.items[2].clear();
        contentControls.items[2].insertHtml('<p>New Footer</p>', 'Replace');
    });
});

Se ha perdido el formato de la última viñeta de una lista o último párrafo.

Si el formato de la última viñeta de una lista o del último párrafo se pierde en el cuerpo o el intervalo especificados, compruebe si usa Body.insertFileFromBase64 o Range.insertFileFromBase64. Si es así, actualice el código para usar Document.insertFileFromBase64 en su lugar.

Significado de los valores de propiedad null en la respuesta

nulltiene implicaciones especiales en las API de JavaScript de Word. Se usa para representar valores predeterminados o sin formato.

Las propiedades de formato, como el color , contendrán null valores en la respuesta cuando existan valores diferentes en el intervalo especificado. Por ejemplo, si recupera un rango y carga su propiedad range.font.color:

  • Si todo el texto del rango tiene el mismo color de fuente, range.font.color especifica ese color.
  • Si hay varios colores de fuente dentro del rango, range.font.color es null.

Mi complemento ya no puede encontrar la ventana de Word correcta

Microsoft Word, al igual que otras aplicaciones de Windows, usa una jerarquía de ventanas para mostrar documentos e interfaz de usuario a los usuarios. Estas ventanas se pueden identificar mediante identificadores de ventana o nombres de clase. A partir de la versión 2502 de Office (compilación 18526.20118), se quitó una de las ventanas de la jerarquía de Word.

Es posible que el complemento de Word tenga una dependencia rígida de la jerarquía de ventanas anterior de Word, por lo que se bloquea o ya no funciona correctamente. Para ver un problema de ejemplo, consulte Posiblemente las actualizaciones de Aplicaciones de Office de Microsoft 365 bloquean mi Word Addin. Se recomienda que los desarrolladores no se basen en una estructura jerárquica de ventana determinada. En su lugar, la guía actual consiste en buscar el nombre de clase de una ventana. Para buscar la ventana de Word de nivel superior, busque el nombre de clase "OpusApp". Para buscar la ventana que muestra un documento Word abierto, busque el nombre de clase "_WwG".

A continuación se muestra un ejemplo de la jerarquía de ventana de Word anterior.

Jerarquía de ventana Word anterior.

A continuación se muestra un ejemplo de la nueva jerarquía de ventanas. Tenga en cuenta que la ventana intermedia con el nombre de clase "_WwF" ya no está presente.

Nueva jerarquía de ventana Word.

Puede usar una herramienta de depuración como Spy++ para inspeccionar la jerarquía de ventanas de una aplicación. Sin embargo, tenga en cuenta que la jerarquía podría cambiar aún más en el futuro.

Las API nativas de JavaScript no funcionan con Word. Mesa

El Word. El objeto Table es diferente de un objeto de tabla HTML. Las API nativas de JavaScript que se usan para interactuar con una tabla HTML no se pueden usar para administrar un Word. Objeto Table. En su lugar, debe usar las API de tabla disponibles en el modelo de objetos de Word para interactuar con Word. Tabla y objetos relacionados.

Del mismo modo, no use Word API de JavaScript para interactuar con objetos de tabla HTML.

Vea también