Freigeben über


Problembehandlung für Word-Add-Ins

In diesem Artikel wird die Behandlung von Problemen erläutert, die nur für Word gelten. Verwenden Sie das Feedbacktool am Ende der Seite, um andere Probleme vorzuschlagen, die diesem Artikel hinzugefügt werden können.

Alle ausgewählten Bereiche werden nicht erkannt.

Wenn nicht zusammenhängende Auswahlen vorgenommen werden, wird die Word-API nur für den letzten zusammenhängenden Bereich in der Auswahl ausgeführt. Ein unerwarteter Fall ist, wenn Sie eine Spalte in einer Tabelle auswählen und dann z. B. Document.getSelection aufrufen. Nur die letzte Zelle in der Auswahl wird von der API zurückgegeben. Obwohl die Auswahl einer Spalte zusammenhängend erscheint, erkennt die API sie als nicht zusammenhängende Auswahl (z. B. eine Zelle pro Zeile).

Allgemeine Informationen zum Treffen nicht zusammenhängender Auswahlen finden Sie unter Auswählen von Elementen, die sich nicht nebeneinander befinden.

Anmerkungen funktionieren nicht

Wenn die Anmerkungs-APIs nicht funktionieren, kann dies daran liegen, dass Sie kein Microsoft 365-Abonnement verwenden. Wenn Sie eine Lizenz für einmaligen Kauf verwenden, funktionieren diese APIs möglicherweise nicht für Sie.

Die Anmerkungs-APIs basieren auf einem Dienst, der ein Microsoft 365-Abonnement erfordert. Vergewissern Sie sich daher, dass Sie das Add-In in Word ausführen, das mit einer Microsoft 365-Abonnementlizenz verbunden ist, bevor Sie das Debuggen fortsetzen.

Weitere Informationen zu diesem Problem finden Sie unter GitHub-Problem 4953.

Es ist beabsichtigt, dass die Body.insertFileFromBase64-Methode alle Kopf- oder Fußzeilen ausschließt, die sich in der Quelldatei befanden.

Um Kopf- oder Fußzeilen aus der Quelldatei einzuschließen, verwenden Sie stattdessen Document.insertFileFromBase64 .

Mixed kann nicht zum Festlegen einer Eigenschaft verwendet werden

Mehrere Enumerationen in Word bieten "Gemischt" als gültigen Wert an. Der Wert kann jedoch hauptsächlich zurückgegeben werden, wenn eine Eigenschaft abgerufen oder einen get*-API-Aufruf erfolgt. Dies liegt daran, dass "Gemischt" bedeutet, dass mehrere Optionen auf die aktuelle Auswahl angewendet werden. Wenn Sie versuchen, die Option auf "Gemischt" festzulegen, ist nicht klar, welcher tatsächliche Wert auf die Auswahl angewendet werden soll.

Angenommen, Sie arbeiten mit den Rahmen um einen Textabschnitt. Jeder Rahmen kann auf eine andere Breite festgelegt werden. Wenn der obere Rahmen "Pt025" (d. h. 0,25 Punkte) ist, ist der untere Rahmen "None", und der linke und der rechte Rahmen sind "Pt050" (d. h. 0,50 Punkt), dann wird "Gemischt" zurückgegeben, wenn Sie die Breite der Rahmen erhalten. Wenn Sie die Breite der Rahmen ändern möchten, rufen Sie die Set-API für jeden Rahmen auf, indem Sie einen anderen Enumerationswert als mixedverwenden.

Dieses Verhalten gilt auch für Enumerationswerte wie "Unknown".

Abrufen einer GeneralException beim Arbeiten mit Formatvorlagen

Wenn Benutzer eine GeneralException erreichen, wenn Ihr Add-In Document.insertFileFromBase64- oder Style-APIs aufruft, kann es sein, dass diese Benutzer die von der Word-Anwendung festgelegten Grenzwerte überschreiten. Weitere Informationen zu diesen Grenzwerten finden Sie unter Einschränkungen und Spezifikationen für Betriebsparameter in Word.

Layoutumbrüche bei Verwendung von insertHtml , während sich der Cursor im Inhaltssteuerelement in der Kopfzeile befindet

Dieses Problem kann auftreten, wenn die folgenden drei Bedingungen erfüllt sind.

  1. Verwenden Sie mindestens ein Inhaltssteuerelement in der Kopfzeile und mindestens ein Steuerelement in der Fußzeile des Word Dokuments.
  2. Stellen Sie sicher, dass sich der Cursor in einem Inhaltssteuerelement im Header befindet.
  3. Rufen Sie insertHtml auf, um ein Inhaltssteuerelement in der Fußzeile festzulegen.

Die Fußzeile wird dann unerwartet mit dem Header gemischt. Um dies zu vermeiden, löschen Sie das Inhaltssteuerelement in der Fußzeile, bevor Sie es festlegen, wie im folgenden Codebeispiel gezeigt.

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

Formatierung des letzten Aufzählungszeichens in einer Liste oder einem letzten Absatz verloren

Wenn die Formatierung des letzten Aufzählungszeichens oder des letzten Absatzes im angegebenen Text oder Bereich verloren geht, überprüfen Sie, ob Sie Body.insertFileFromBase64 oder Range.insertFileFromBase64 verwenden. Wenn ja, aktualisieren Sie Ihren Code, um stattdessen Document.insertFileFromBase64 zu verwenden.

Bedeutung von NULL-Eigenschaftswerten in der Antwort

nullhat besondere Auswirkungen auf die Word JavaScript-APIs. Es wird verwendet, um Standardwerte oder keine Formatierung darzustellen.

Formatierungseigenschaften wie Farbe enthalten null Werte in der Antwort, wenn im angegebenen Bereich unterschiedliche Werte vorhanden sind. Wenn Sie z. B. einen Bereich Abrufen und die range.font.color-Eigenschaft laden:

  • Wenn der gesamte Text im Bereich die gleiche Schriftfarbe aufweist, range.font.color gibt diese Farbe an.
  • Wenn mehrere Schriftfarben im Bereich vorhanden sind, ist range.font.colornull.

Mein Add-In kann das richtige Word Fenster nicht mehr finden

Microsoft Word verwendet wie andere Windows-Anwendungen eine Hierarchie von Fenstern, um Benutzern Dokumente und Benutzeroberfläche anzuzeigen. Diese Fenster können anhand von Fensterhandles oder Klassennamen identifiziert werden. Ab Office Version 2502 (Build 18526.20118) wurde eines der Fenster in der Hierarchie von Word entfernt.

Es ist möglich, dass Ihr Word-Add-In eine starre Abhängigkeit von der vorherigen Fensterhierarchie Word aufweist und daher abstürzt oder nicht mehr ordnungsgemäß funktioniert. Ein Beispielproblem finden Sie unter Möglicherweise Microsoft 365 Office Apps-Updates stürzen mein Word Addin ab. Entwickler sollten sich nicht auf eine bestimmte hierarchische Fensterstruktur verlassen. Stattdessen besteht die aktuelle Anleitung darin, nach dem Klassennamen eines Fensters zu suchen. Suchen Sie nach dem Namen der Klasse "OpusApp", um das Fenster der obersten ebene Word zu finden. Um das Fenster zu finden, in dem ein geöffnetes Word Dokument angezeigt wird, suchen Sie nach dem Klassennamen "_WwG".

Im Folgenden sehen Sie ein Beispiel für die vorherige Word Fensterhierarchie.

Vorherige Word Fensterhierarchie.

Im Folgenden sehen Sie ein Beispiel für die neue Fensterhierarchie. Beachten Sie, dass das Zwischenfenster mit dem Klassennamen "_WwF" nicht mehr vorhanden ist.

Neue Word Fensterhierarchie.

Sie können ein Debugtool wie Spy++ verwenden, um die Fensterhierarchie einer Anwendung zu überprüfen. Beachten Sie jedoch, dass sich die Hierarchie in Zukunft weiter ändern könnte.

Native JavaScript-APIs funktionieren nicht mit Word. Tisch

Die Word. Das Table-Objekt unterscheidet sich von einem HTML-Tabellenobjekt. Die nativen JavaScript-APIs, die für die Interaktion mit einer HTML-Tabelle verwendet werden, können nicht zum Verwalten eines Word verwendet werden. Table-Objekt. Stattdessen müssen Sie die Tabellen-APIs verwenden, die im Word-Objektmodell verfügbar sind, um mit Word zu interagieren. Tabelle und verwandte Objekte.

Verwenden Sie auch keine Word JavaScript-APIs für die Interaktion mit HTML-Tabellenobjekten.

Shape-APIs können Keine Shapes finden

Sie haben Formen in Ihrem Dokument, aber aus irgendeinem Grund, wenn Sie die API zum Abrufen von Shapes verwendet haben, z. B. , ist das Ergebnis, context.document.body.shapesdass 0 Shapes gefunden wurden.

Eine Möglichkeit besteht darin, dass die vorlage Word veraltet ist. Wenn Sie ein neues Dokument aus der Standardvorlage erstellt haben, aber in der Titelleiste des Word Fensters "Kompatibilitätsmodus" angezeigt wird, sollten Sie die Standardvorlage aktualisieren.

Kompatibilitätsmodus, der in Word Titelleiste des Fensters angezeigt wird.

Informationen zum Ändern der Standardvorlage finden Sie unter Ändern der Standardvorlage (Normal.dotm).

  1. Verwenden Sie die Anweisungen, um den Speicherort der Vorlage Normal auf Ihrem Computer zu ermitteln.

  2. Stellen Sie sicher, dass Word geschlossen ist.

  3. Umbenennen Normal.dotm in Explorer oder einer ähnlichen Anwendung. Oder Sie können an einen anderen Speicherort wechseln Normal.dotm .

    Wichtig

    Da Sie umbenannt oder verschoben Normal.dotmhaben, erstellt Word beim nächsten Öffnen Word automatisch eine neue Version. Alle Anpassungen in Ihrem Original Normal.dotm werden nicht auf die neue Version übertragen, sodass Sie Ihre Anpassungen zur neuen Vorlage hinzufügen müssen.

  4. Öffnen Sie Word, und erstellen Sie ein neues Dokument mit der Standardvorlage. "Kompatibilitätsmodus" sollte nicht mehr angezeigt werden.

  5. Versuchen Sie erneut, Ihren Code mithilfe der Shape-API auszuführen.

Weitere Informationen