Partager via


Résoudre les problèmes posés par les compléments de Word

Cet article décrit la résolution des problèmes propres à Word. Utilisez l’outil de commentaires à la fin de la page pour suggérer d’autres problèmes qui peuvent être ajoutés à cet article.

Toutes les plages sélectionnées ne sont pas reconnues

Si des sélections non incohérentes sont effectuées, l’API Word fonctionne uniquement sur la dernière plage contiguë de la sélection. Dans ce cas inattendu, lorsque vous sélectionnez une colonne dans une table, puis appelez, par exemple , Document.getSelection, seule la dernière cellule de la sélection est retournée par l’API. Bien que la sélection d’une colonne semble contiguë, l’API la reconnaît comme une sélection non incohérente (par exemple, une cellule par ligne).

Pour en savoir plus sur les sélections non incohérentes, consultez Comment sélectionner des éléments qui ne sont pas les uns à côté des autres.

Les annotations ne fonctionnent pas

Si les API d’annotation ne fonctionnent pas, cela peut être dû au fait que vous n’utilisez pas d’abonnement Microsoft 365. Si vous utilisez une licence à achat unique, c’est peut-être pour cette raison que ces API ne fonctionnent pas pour vous.

Les API d’annotation s’appuient sur un service qui nécessite un abonnement Microsoft 365. Par conséquent, vérifiez que vous exécutez le complément dans Word connecté à une licence d’abonnement Microsoft 365 avant de poursuivre le débogage.

Pour plus d’informations sur ce problème, consultez Problème GitHub 4953.

C’est par conception que la méthode Body.insertFileFromBase64 exclut tout en-tête ou pied de page qui se trouvait dans le fichier source.

Pour inclure des en-têtes ou des pieds de page du fichier source, utilisez Plutôt Document.insertFileFromBase64 .

Impossible d’utiliser Mixed pour définir une propriété

Plusieurs énumérations dans Word proposent « Mixte » comme valeur valide. Toutefois, la valeur peut principalement être retournée lorsqu’un obtient une propriété ou effectue un appel d’API get*. En effet, « Mixte » signifie que plusieurs options sont appliquées à la sélection actuelle. Si vous essayez de définir l’option sur « Mixte », il n’est pas clair quelle valeur réelle doit être appliquée à la sélection.

Par exemple, supposons que vous travaillez avec les bordures autour d’une section de texte. Chaque bordure peut être définie sur une largeur différente. Si la bordure supérieure est « Pt025 » (autrement dit, 0,25 point), la bordure inférieure est « None » et les bordures gauche et droite sont « Pt050 » (autrement dit, 0,50 point), alors lorsque vous obtenez la largeur des bordures, « Mixed » est retourné. Si vous souhaitez modifier la largeur des bordures, appelez l’API set sur chaque bordure à l’aide d’une valeur d’énumération autre que mixed.

Ce comportement s’applique également aux valeurs enum telles que « Unknown ».

Obtenir une Exception générale lors de l’utilisation de styles

Si les utilisateurs accèdent à une Exception Générale lorsque votre complément appelle les API Document.insertFileFromBase64 ou Style, il se peut que ces utilisateurs dépassent les limites imposées par l’application Word. Pour en savoir plus sur ces limites, consultez Limitations et spécifications des paramètres d’exploitation dans Word.

Sauts de disposition lors de l’utilisation insertHtml du curseur dans le contrôle de contenu dans l’en-tête

Ce problème peut se produire lorsque les trois conditions suivantes sont remplies.

  1. Avoir au moins un contrôle de contenu dans l’en-tête et au moins un contrôle dans le pied de page du document Word.
  2. Vérifiez que le curseur se trouve à l’intérieur d’un contrôle de contenu dans l’en-tête.
  3. Appelez insertHtml pour définir un contrôle de contenu dans le pied de page.

Le pied de page est ensuite mélangé de manière inattendue avec l’en-tête. Pour éviter cela, effacez le contrôle de contenu dans le pied de page avant de le définir, comme illustré dans l’exemple de code suivant.

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

Perte de mise en forme de la dernière puce d’une liste ou du dernier paragraphe

Si la mise en forme de la dernière puce d’une liste ou du dernier paragraphe est perdue dans le corps ou la plage spécifié, case activée si vous utilisez Body.insertFileFromBase64 ou Range.insertFileFromBase64. Si c’est le cas, mettez à jour votre code pour utiliser Document.insertFileFromBase64 à la place.

Signification des valeurs de propriété Null dans la réponse

nulla des implications particulières dans les API JavaScript Word. Il est utilisé pour représenter les valeurs par défaut ou aucune mise en forme.

Les propriétés de mise en forme telles que la couleur contiennent des null valeurs dans la réponse lorsque différentes valeurs existent dans la plage spécifiée. Par exemple, si vous récupérez une plage et chargez sa propriété range.font.color:

  • Si tout le texte de la plage a la même couleur de police, range.font.color spécifie cette couleur.
  • Si plusieurs couleurs de police sont présentes dans la plage, range.font.color est null.

Mon complément ne trouve plus la fenêtre de Word correcte

Microsoft Word, comme d’autres applications Windows, utilise une hiérarchie de fenêtres pour afficher les documents et l’interface utilisateur aux utilisateurs. Ces fenêtres peuvent être identifiées par des handles de fenêtre ou des noms de classe. À partir de la version 2502 d’Office (build 18526.20118), l’une des fenêtres de la hiérarchie de Word a été supprimée.

Il est possible que votre complément Word ait une dépendance rigide par rapport à la hiérarchie de fenêtres précédente de Word et donc se bloque ou ne fonctionne plus correctement. Pour obtenir un exemple de problème, voir Éventuellement les mises à jour microsoft 365 Office Apps plantant mon Word Addin. Nous recommandons aux développeurs de ne pas s’appuyer sur une structure hiérarchique de fenêtre particulière. Au lieu de cela, l’aide actuelle consiste à rechercher le nom de classe d’une fenêtre. Pour rechercher la fenêtre de Word de niveau supérieur, recherchez le nom de la classe « OpusApp ». Pour rechercher la fenêtre affichant un document Word ouvert, recherchez le nom de la classe « _WwG ».

L’exemple suivant illustre la hiérarchie de fenêtres Word précédente.

Hiérarchie de fenêtres Word précédentes.

L’exemple suivant illustre la nouvelle hiérarchie de fenêtres. Notez que la fenêtre intermédiaire avec le nom de classe « _WwF » n’est plus présente.

Nouvelle hiérarchie de fenêtres Word.

Vous pouvez utiliser un outil de débogage comme Spy++ pour inspecter la hiérarchie de fenêtres d’une application. Toutefois, gardez à l’esprit que la hiérarchie pourrait encore changer à l’avenir.

Les API JavaScript natives ne fonctionnent pas avec Word. Table

Word. L’objet Table est différent d’un objet table HTML. Les API JavaScript natives utilisées pour interagir avec une table HTML ne peuvent pas être utilisées pour gérer un Word. Objet Table. Au lieu de cela, vous devez utiliser les API table disponibles dans le modèle objet Word pour interagir avec Word. Table et objets associés.

De même, n’utilisez pas Word API JavaScript pour interagir avec les objets de table HTML.

Voir aussi