Wie erzeuge ich Inhaltsverzeichnis mit OpenXML SDK 2.0?

8

Mit dem SDK baue ich Word-Dokumente, die Berichte enthalten. Diese Dokumente müssen Inhaltsverzeichnis haben. Hat jemand eine komplette Lösung, der ich folgen kann, um zu verstehen, wie man das macht?

(Ich habe alles auf Ссылка )

gelesen     
Yeseanul 18.03.2012, 21:57
quelle

2 Antworten

8

Sehen Sie sich Vierte und abschließende Screen-Cast in Serie beim Hinzufügen / Aktualisieren des Inhaltsverzeichnisses in OpenXML WordprocessingML-Dokumenten von Eric White.

Hoffe das hilft!

UPDATE:

Laut FAQ von MSDN Foren Ich sehe, dass diese Funktion nicht unterstützt wird:

  

8) Wie generiere ich TOC (Inhaltsverzeichnis) in einem Word-Dokument?

     

Open XML SDK 2.0 unterstützt diese Funktion nicht. Aber Sie können generieren   eine kleine TOC über Word-App und spiegeln die TOC-Teile mit Document   Reflektorkomponente im Open XML SDK Productivity Tool, um zu sehen, wie   Generieren Sie ein Inhaltsverzeichnis programmgesteuert. Für detailliertere Informationen bitte   Siehe:

UPDATE 2

Aufgrund unserer nachstehenden Kommentare könnte ich vorschlagen, dieses Szenario zu verwenden:

  1. Sie erstellen manuell eine leere DOCX-Datei und fügen darin das Inhaltsverzeichnis ein.
  2. Dann speichern Sie diese Datei und öffnen sie im OpenXML SDK 2.0 Tool, das Ihnen den C # -Code zum Erzeugen einer solchen leeren Datei mit TOC-Platzhalter zur Verfügung stellt.
  3. Anschließend werden alle Daten, die Sie für diese DOCX-Datei benötigen, programmgesteuert gelöscht und gespeichert.
  4. Darüber hinaus müssen Sie den Mechanismus bereitstellen, der das Inhaltsverzeichnis automatisch aktualisiert, sobald die Daten geleert wurden (oder wenn das Dokument einmal geöffnet wurde). Es gibt ein paar Möglichkeiten, das zu tun - siehe Screen-Casts 3-5 von dem Link zu Eric White Post, den ich oben zur Verfügung gestellt habe. Besonders, ich denke, du solltest deine Aufmerksamkeit auf 5. -" Zeigt, wie ein AutoOpen-Makro zum Aktualisieren des Inhaltsverzeichnisses verwendet wird, wenn ein Dokument mit einem Inhaltsverzeichnis geöffnet wird / strong> ".

All das sieht ein bisschen schwierig aus, aber ich hoffe, das hilft.

    
Dmitry Pavlov 19.03.2012, 10:58
quelle
3

Dank Dmitri Pavlov (@DmitryPavlov) für die Hilfe.

>

Ich möchte meine eigene Frage nicht beantworten, aber das soll nur die Schritte veranschaulichen, die ich unternommen habe.

Der Ratschlag für alle Interessierten ist, sich den 5-teiligen Screencast von Eric White anzusehen - Erforschen von Inhaltstabellen in Open XML WordprocessingML-Dokumenten . Dies hat alle Informationen in Bezug auf das Hinzufügen und Aktualisieren eines Inhaltsverzeichnisses (bin viel mehr).

Meine Lösung bestand darin, eine Vorlage zu verwenden (nur ein normales leeres Dokument, das Stile für alles hatte, was ich brauchte: Kopfzeile 1-5, TOC-Stil usw.). Dies ist besonders nützlich als schnelle Lösung für das Problem mit den Stilen (für das neue Dokument mit dem Inhaltsverzeichnis wird eine neue style.xml erstellt; diese Datei enthält einige zusätzliche Daten; infolgedessen ist die Hierarchie im Inhaltsverzeichnis nicht so erwartet - dh Header 2 ist das Kind von Header 1, Header 3 ist ein Kind von Header 2 usw.).

Daher:

  1. Erstellen Sie ein Word-Dokument, und fügen Sie alle Elemente hinzu, die später programmgesteuert hinzugefügt werden sollen (z. B. Header 1-5, Inhaltsverzeichnis usw.). Löschen Sie alle Inhalte und speichern Sie das Dokument (der Grund dafür ist, Stile für alle erforderlichen Elemente zu erstellen).

  2. Ich habe persönlich die Vorlage (die in Schritt 1 erstellte Datei) als Ressource in meinem Projekt hinzugefügt.

  3. Erstellen Sie in Ihrem Code eine neue Kopie der Vorlage (dies ist die eigentliche Datei, an der Sie arbeiten werden). Ich benutzte:

    %Vor%
  4. Leert alle Daten in diesem Dokument.

  5. Fügen Sie Ihrem Projekt die Quelldateien von Screencast 2, 3 oder 4 hinzu (siehe hierzu Screencast 3) - am Ende dieser Beiträge finden Sie einen Link zum Herunterladen von TocAdder .zip . Oder fügen Sie einfach einen Verweis auf TocAdder.dll hinzu.

  6. Fügen Sie das Inhaltsverzeichnis ein. Nur ein Beispiel:

    %Vor%
  7. Ersetzen Sie die Stile im neu erstellten Dokument durch die aus der Vorlage. Sie können diese Ressource von MSDN verwenden: Ersetzen der Formatvorlagen in Word 2010-Dokumenten mit dem Open XML SDK 2.0 . Auch hier ein Beispiel:

    %Vor%
  8. Verwenden Sie optional eine der in Screencast 3, 4 oder 5 beschriebenen Methoden, um das Problem mit dem modalen Dialogfeld zu umgehen, das Word erstellt.

Ich hoffe, dass dies für jemanden nützlich sein wird.

    
Yeseanul 23.03.2012 15:22
quelle

Tags und Links