DevTrain

Autor: Unbekannt nn

Word über ASP benutzen

Verwenden von Worddokumenten über ASP und automatisches erstellen und darstellen von Word-Dokumenten im Intranet/Internet.

Aufgabe ist es, einen benutzerdefinierten Ausdruck zu erzeugen der auf jeder Seite eine Überschrift enthält sowie x Kriterien. In HTML ist diese Aufgabe nur schwierig oder gar nicht lösbar. In Word wäre diese Aufgabenstellung aber relativ einfach zu  programmieren. Daher bietet es sich an, Word in ASP zu instantiieren und Werte zu übergeben. Dieses Beispiel geht einen Schritt weiter und arbeitet mit einem Template, daß Sie beliebig gestalten können. Innerhab dieses Templates können Sie Formatierungen und Textmarken nach belieben festlegen.

Nach der Instantiierung des Word.Application Objekts wird das Template geladen und die Werte übergeben.

Hier die Schritte im einzelnen:

Instanziieren von Microsoft Word

Set Application("MyDoc") = Server.CreateObject("Word.Application")

Laden einer Dokumentvorlage .dot

Application("MyDoc").Documents.Add (Server.MapPath("word.dot"))

Füllen der Textmarke Ueberschrift

set Ueberschrift = Application("MyDoc").ActiveDocument.Bookmarks("Ueberschrift").Range
Ueberschrift.InsertAfter "Das ist die Überschrift"

Füllen der Textmarke Kriterien

set Kriterien = Application("MyDoc").ActiveDocument.Bookmarks("Kriterien").Range
Kriterien.InsertAfter "Suche1: Wert1" & chr(10)
Kriterien.InsertAfter "Suche2: Wert2" & chr(10)
Kriterien.InsertAfter "Suche3: Wert6"

Werte der Textmarke Kriterien Dynamisch füllen

set Daten = Application("MyDoc").ActiveDocument.Bookmarks("Daten").Range
For i = 1 to 100
 Daten.InsertAfter "Wert: " & i & vbtab & "Ergebnis: " & i * 10 & chr(10)
next

Dokument Speichern

Application("MyDoc").ActiveDocument.SaveAs server.MapPath("word.doc")
Application("MyDoc").ActiveDocument.Close

Objekt - Applicationvariable zerstören geht leider nicht da es sich um einen assyncronen Prozess handelt.  set Application("MyDoc")=nothing zerstört daher nicht die Instanz von Word. Hierzu verwenden Sie den Befehl

Application("MyDoc").Quit


Rufen Sie nun die Seite word.doc auf:

<SCRIPT LANGUAGE=javascript>
<!--
window.location.href=("word.doc");
//-->
SCRIPT>

<a href="word.doc">Bitte warten Sie einen Moment...<br>Oder
klicken Sie hier wenn Sie keine Rückmeldung erhalten.</a>


Die letzten beiden Codeblöcke dienen dazu, das Word Dokument in den Browser zu laden.


 

Probleme: Sie müssen die Office Installation (97 oder 2000) erfolgreich abgeschlossen haben. Evtl. kommt es vor, daß im Taskmanager der Windows-Installer gestartet wird, aber nicht angezeigt wird. Legen Sie in diesem Falle Ihre Office CD ins Laufwerk, dann werden die fehlenden Komponenten nachinstalliert.

Dessweiteren müssen Sie über entsprechende Rechte verfügen. Nehmen Sie daher die annonyme Anmeldung auf der ASP Seite heraus oder konfigurieren Sie Ihren IIS so, daß der IUSER zugriffsrechte hat.

Ein weiteres Problem könnte sein, daß Sie Ihr Web in einem eigenem Prozess ausführen, dann können Sie auf das Word-COM Objekt nicht richtig zugreifen. Sie erhalten dann eine Meldung --> Makrospeicher kann nicht geöffnet werden.

Im Beispiel erhalten Sie den kompletten Sourcecode sowie das Template, daß einige Musterdaten im Worddokument darstellt.


Erfasst am: 24.02.2001 - Artikel-URL: http://www.devtrain.de/news.aspx?artnr=335
© Copyright 2003 ppedv AG - http://www.ppedv.de