DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren


   Autor: Unbekannt nn Artikel Drucken
        
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.


DevTrain Camp - Schneller zum .NET 3.5 Developer
 
Verwandte Artikel      Verlinkte Dokumente
    Keine verknüpften Dokumente
    Keine Links vorhanden

  Erfasst am: 24.02.2001
  Gültig bis: 30.03.2001
33 Ratings
Bewertung: 71,5%
schlecht    sehr gut  

 
© Copyright 2007 ppedv AG