Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: TomLudwig am 07.04.05 - 12:42:29

Titel: Web to Excel
Beitrag von: TomLudwig am 07.04.05 - 12:42:29
Hallo,

ich möchte über einen Button (im Web) eine Ecxel Datei erzeugen.
Funtkioniert dies nur, wenn am Server Ecxel instlaliert ist. Oder reicht die Excel Installation am Client?

Vielen Dank

Gruß, Tom
Titel: Re: Web to Excel
Beitrag von: animate am 07.04.05 - 12:48:38
mit welchen Mitteln möchtest du die denn erzeugen?
Titel: Re: Web to Excel
Beitrag von: TomLudwig am 07.04.05 - 13:23:23
Wie ist mir relativ egal.
Hauptsache es funktioniert  ;D

Allerdings habe ich es persönlich erst mit LS in einem Agenten realisiert.
Da dieser dann nur am Server läuft, denke ich, dass Excel am Server installiert sein muss.

Aber ich bin für alle neuen Vorschläge offen ;D
Titel: Re: Web to Excel
Beitrag von: diali am 07.04.05 - 13:29:18
wenn es ein Script-Agent  per OLE nach Excel exportiert, dann muss Excel am Server installiert sein. Von installierten Anwendungen auf dem Server halte ich nicht viel. Was passsiert, wenn Ihr auf Linux wechselt?
Titel: Re: Web to Excel
Beitrag von: Gandhi am 07.04.05 - 13:32:16
Die Frage ist: Warum Excel? Um das nachher mit Excel zu bearbeiten könnte man doch auch ein freundlicheres Format (xml, csv, tabbed Text,....) verwenden.
Anwendungen auf dem Server machen nur Ärger. Auf die Anwendungen auf dem Client angewiesen zu sein - geht gar nicht (es sei denn du nutzt IE ziemlich vollkommen offen).

Aber ich bleibe einfach mal bei der Frage: Wozu Excel?
Titel: Re: Web to Excel
Beitrag von: animate am 07.04.05 - 13:45:43
bisher einfachste Möglichkeit, die ich kenne. Benötigt kein Excel weder auf dem Server noch auf dem Client (außer zum Anschauen):

Print |Content-Type:application/vnd.ms-excel|
Print |<table>
<tr><td>Überschrift1</td><td>Überschrift2</td></tr>
<tr><td>1</td><td>11</td></tr>
<tr><td>2</td><td>12</td></tr>
<tr><td>3</td><td>13</td></tr>
<tr><td>4</td><td>14</td></tr>
</table>|
Titel: Re: Web to Excel
Beitrag von: Marinero Atlántico am 07.04.05 - 14:01:26
Ausserdem: bei etwas komplexeren Excel-Dateien. Über Java kannst du das poi Projekt nutzen, um Excel-Dateien zu erzeugen, ohne dass Excel vorhanden ist.
Zitat
The POI project consists of APIs for manipulating various file formats based upon Microsoft's OLE 2 Compound Document format using pure Java.  In short, you can read and write MS Excel files using Java.  Soon, you'll be able to read and write Word files using Java.  POI is your Java Excel solution as well as your Java Word solution. However, we have a complete API for porting other OLE 2 Compound Document formats and welcome others to participate.
http://jakarta.apache.org/poi/index.html
Titel: Re: Web to Excel
Beitrag von: TomLudwig am 07.04.05 - 14:23:53
Linux kann ich auf keinen Fall verwenden... leider...

Excel muss auch sein, da der Anwender es so will.... leider...

CSV Dateien könnte man natürlich erstellen. Aber die müsste ich ja dann wieder umwandeln in eine Excel Datei. Dafür brauch ich das Programm wieder, das ich aber nicht am Server installieren will.

Die Methode von Thomas Völk kenne ich auch schon. Allerdings kann ich dies leider auch nicht verwenden, da alle Excel Funktionen vorhanden sein müssen. Z.B. Spalten ausblenden usw.

Mit Java hab ich noch nicht großartig gearbeitet. C++ kann ich allerdings. Von daher wär das doch die beste möglichkeit, oder???
Titel: Re: Web to Excel
Beitrag von: diali am 07.04.05 - 14:30:21
CSV und XML kannst Du so mit Excel öffnen. Musst nur im BS die Verknüpfung Dateiendung zu Excel herstellen.
Titel: Re: Web to Excel
Beitrag von: Marinero Atlántico am 07.04.05 - 15:48:13
Mit Java hab ich noch nicht großartig gearbeitet. C++ kann ich allerdings. Von daher wär das doch die beste möglichkeit, oder???
Im Prinzip ja. Viele Organisationen verbieten aber nicht-Lotus c-code auf ihren Domino-Servern.

Am Rande:
Valentin Cretaz hat gerade ein Blogeintrag zu Java-Com bridging geschrieben.
http://radio.javaranch.com/val/2005/04/07/1112864761792.html
Wenn ich ihn richtig verstehe, geht es ihm darum das file nicht auf Festplatte abzulegen, sondern direkt als Stream an den Browser des Users abzuliefern. Letzeres scheint mit poi nicht zu gehen. Guter Punkt. Sollte auch mit C/++ com Integration gehen. 
Titel: Re: Web to Excel
Beitrag von: TomLudwig am 11.04.05 - 12:57:57
Hm...
POIFS und der Blog von Valentin Cretaz ist zwar interessant. Allerings steig ich nicht durch, wenn ich ganz erhlich bin .... *schäm*

Ich glaub es ist das beste, wenn ich das ganze mit XML-Dokumenten mache, die dann mit Excel geöffnet werden.
Hat hierfür jemand vielleicht kurz ne Seite wo ich mich einlesen kann? Evtl. sogar ein Beispiel wie die XML-Datei auszusehen hat?

Vielen Vielen Dank für eure Unterstützung...
Titel: Re: Web to Excel
Beitrag von: diali am 11.04.05 - 13:02:52
speicher mal im Excel eine Datei im XML-Format, dann siehst Du wie die Datei aussieht. Excel bringt allerdings viel Overhead mit, denn Du nicht benötigst. Eine Anleitung findest Du http://members.aol.com/xmldoku/
Titel: Re: Web to Excel
Beitrag von: TomLudwig am 11.04.05 - 15:24:17
Ich hab jetzt ne schöne Internet Seite gefunden in der das Thema Poi beschrieben wird.

http://www.cs.fh-aargau.ch/~gruntz/courses/sem/ss04/poi.pdf

Man bin ich unentschlossen... Aber gleich eine Excel Datei wäre einfach schöner :P

Mit der Seite wär das mit POI denke ich kein Thema mehr.
Aber wie bekomme ich die Packages wie z.B. org.apache.poi.hssf.eventmodel in den Code rein. Da bekomme ich leider die Fehlermeldung das das Package nicht im import gefunden wurde...
Titel: Re: Web to Excel
Beitrag von: animate am 11.04.05 - 15:40:11
Ich glaub es ist das beste, wenn ich das ganze mit XML-Dokumenten mache, die dann mit Excel geöffnet werden.
Hat hierfür jemand vielleicht kurz ne Seite wo ich mich einlesen kann? Evtl. sogar ein Beispiel wie die XML-Datei auszusehen hat?

Ich glaube, du unterschätzt das etwas. Ich kann mich aber auch irren.

auf der Seite
http://www.microsoft.com/office/xml/default.mspx
gibts einen Link, der zum Download der XML Reference Schemas führt.
Titel: Re: Web to Excel
Beitrag von: zaphod am 11.04.05 - 17:13:04
Ciao

wenn du VBScript / JScript (also IE und Intranet) erlaubst, kannst du auch auf diese weise ein Excel beim Client erzeugen (muss da natürlich vorhanden sein). Du könntest dann mit einem Agenten den Code ausprinten, welcher danach im IE ausgeführt wird. Bei uns ist sowas im Einsatz (Auszug) :



Function putScript()
   Print |<SCRIPT LANGUAGE="VBScript">|
   Print |<!-- |
   
   Print |Function OpenExcel|
   
   Print |Dim xl|
   Print |Set xl = CreateObject("Excel.Application")|
   
   Print |xl.Workbooks.Open "http://| & docProfile.ProfCLWEBPath(0) |/ConfigViewFilterOE/$file/| & sTempl & |"|
   Print |set oData = xl.Sheets("Daten")|
   Print |oData.Select|
   
' -- Daten aus der Liste in ein Array einlesen (bessere Performance beim abfüllen in Excel)
   Print |dim arr(| & i & |,11)|
   Forall lines In dataList
      Print lines
   End Forall   
   
'-- Bereich für Daten im Excel-Sheet markieren
   Print |dim rng|
   Print |set rng = xl.Activesheet.Range("A2").Resize(| & i & |,12)|
   
'-- Werte einfügen
   Print |rng.value = arr|
   
   Print |xl.Sheets("Auswertung").Select|
   Print |xl.Visible = True|
   
   Print |set oAuswertung = xl.Sheets("Auswertung")|
   Print |oAuswertung.Select|
   Print |oAuswertung.cells(1,1) = "Auslastungs Pivot | & sVwTypeName & | Stand: | & Format$(Now)   & """"
   
   If sFilter = "0" Then
      Print |oAuswertung.cells(2,1) = "Filter: none"|
   Else
      Print |oAuswertung.cells(2,1) = "Filter: | & Implode(Split(sOE, "~") , ", " ) & """"
   End If
   
   Print |set oPivot = xl.Sheets("Auswertung")|
   Print |oPivot.Select|
   
   Print |With oPivot|
   Print | .Range("A1").Select|
   Print | .PivotTables("PivotTable1").RefreshTable 'Pivotabelle aktualisieren (Name kontrollieren)|
   Print |End With|
   
   Print |End Function|
   Print | -->|
   Print |</SCRIPT>|
   
   Print |<SCRIPT LANGUAGE="Javascript">|
   Print |OpenExcel();|
   Print |history.go(-2);|
   Print |</SCRIPT>|
End Function


Diese Funktion öffnet zuerst ein Template auf dem Server und füllt dann die Daten ab. Wenn du aber mal das Excel Objekt hast, kannst du damit Clientseitig eigentlich alles anstellen...

bye z
Titel: Re: Web to Excel
Beitrag von: TomLudwig am 12.04.05 - 13:40:31
Einwandfrei. Mit VB Script gehts am leichtesten. Es muss zwar ActiveX aktiviert sein, aber immerhin. Es funktioniert. Juhu!

DANKE