Frage

Ich habe automatisierte Word -Dokumenterstellung von Vorlagen mit dem "Microsoft Word 12.0 Objektbibliothek"In meinem Projekt, aber es ist unannehmbar langsam. Ich suche nach Alternativen: Ich muss ein Dokument aus einer Vorlage erstellen, einige Makros ausführen und Text und Tabellen in verschiedene Lesezeichenbereiche einfügen (einige Optionen für Textformatierung wären auch schön) Ich brauche nur das endgültige Dokument, um kompatibel zu sein Word2007, aber würde eine Lösung bevorzugen, die leicht erhältlich ist .NETZ (Andere Empfehlungen werden auch geschätzt) ...

Bitte beraten.

War es hilfreich?

Lösung

Schauen Sie sich Microsofts an Office OpenXML SDK. Sie können Sie programmgesteuert Word 2007 (.docx) -Dokumente ohne Büroanwendungen erstellen.

Um es zu verwenden, müssen Sie mit dem OpenXML -Dateiformat vertraut sein. Ein guter Ausgangspunkt, der auch Beispiele bereitstellt, sind die Blogs von Brian Jones und Erika Ehrli.

Dieses Beispiel auf CodeProject könnte auch ein guter Start sein: Erstellung eines Wortes 2007 mit dem Open XML -Format SDK.

Ich empfehle Ihnen auch, sich den Documentreflector, ein im SDK enthaltenes Tool, zu sehen, das den Code zum Erstellen eines bestimmten Wortdokuments basierend auf einem vorhandenen Dokument erstellt.

Andere Tipps

Optionen, ich habe bisher eingesetzt:

  1. Ihre - COM -Automatisierung: Leistung war hier nicht das größte Problem für mich, nur alle hässlichen Details der COM -Automatisierung wie tote Prozesse, gesperrte Dateien, ...; Bei einigen Aufgaben, bei denen eine API existiert und solange nur Person die App verwendet, ist sie noch eine Option. Benötigt Wortinstallation.
  2. Importieren Sie als HTML und speichern Sie als Wort - funktioniert schnell und besser wie erwartet, solange Ihr Wortformat einfach ist und die HTML -Markup -Struktur recht gut übereinstimmt (z. B. Header, Elementlisten). Um das Handling zu vereinfachen, müssen Vorlagen dann HTML sein, so oft ein kurzer Hack für einen begrenzten Anwendungsfall. Benötigt Wortinstallation.
  3. Verketten- und Prozessvorlagen, die als WordML gespeichert sind: Speichert Ihnen den Schmerz der COM -Automatisierung, aber da WordML nur ein binäres Format ist, das als XML maskiert ist, ist es oft ein Schmerz. Daher sind einige Aufgaben komplizierter als die Verwendung eines Wort-API. Trotzdem bevorzuge ich es über 1. muss keine Wortinstallation erforderlich sind.
  4. Wie in früherer Antwort scheint OpenXML SDK: Nur zu verwenden, scheint ein guter Kompromiss von 1 und 3 zu sein: Arbeiten Sie auf XML -Ebene oder auf API -Ebene - was auch immer für eine bestimmte Funktion am besten passt. Erfordert keine Wortinstallation.

Andere Empfehlungen werden ebenfalls geschätzt

Die Java -Äquivalente zum OpenXML SDK sind Docx4j (mein Projekt) und Poi.

Mit DOCX4J können Sie Makros in einen vorhandenen DOCX injizieren oder aus einem DOTM arbeiten (wie Divo vorschlägt).

OfficeWriter ist eine weitere Option.

Die OfficeWriter -API ist eine .NET -Bibliothek, mit der Sie Excel- und Word -Dokumente aus Ihren eigenen Anwendungen generieren, manipulieren und lesen können.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top