Autor Thema: Excel auf dem Server?  (Gelesen 10953 mal)

botschi

  • Gast
Excel auf dem Server?
« am: 19.03.07 - 14:57:47 »
Moin,

ich möchte in der Nacht per Agent eine Excel-Datei erzeugen und diese per Mail versenden.
Eigentlich kein Problem, weder der Agent, noch periodisch.

Ich habe aber nun doch ein Problem, weil es in der Zeile

Set quelle_xlApp = CreateObject("Excel.Application")

einen Fehler gibt.
Auf dem Server ist KEIN Excel installiert.
Muss dort Excel installiert sein, damit der Server das Objekt erzeugen kann?
Kennt jemand eine Alternative zur Installation von Excel auf dem Server?

Matthias
« Letzte Änderung: 21.03.07 - 18:00:13 von botschi »

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Excel auf dem Server?
« Antwort #1 am: 19.03.07 - 15:07:36 »
Ja, Excel muss installiert sein.

Alte Naive:

http://www.eknori.de/archives/1

Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline ZaLudtske

  • Senior Mitglied
  • ****
  • Beiträge: 319
  • Geschlecht: Männlich
  • carpe diem
Re: Excel auf dem Server?
« Antwort #2 am: 19.03.07 - 15:08:50 »
Hallo,

du benötigst auf jeden Fall auf dem Server das entsprechende Programm. Eine Alternative währe das Schreiben einer Datei im Excel-Format aus dem Agenten heraus. Ich habe da einer Klasse mit der du das erledigen kannst. Sie schreibt aber nur Dateien im Format der Version 3. Wenn du Interesse hast, dann melde dich bitte

Rainer
Rainer Zaske

MCSD - C#

Offline Demian

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 569
  • Geschlecht: Männlich
Re: Excel auf dem Server?
« Antwort #3 am: 19.03.07 - 15:28:56 »
Moin,moin,

eine andere Alternative wäre je nach Datenmenge auch die Daten in sequentielle Dateien zu schreiben, die Werte mit ; zu trennen und als .csv zu speichern. Wenn der Benutzer den Anhang mit Excel öffnet, werden automatisch die ; als Spaltenwechsel gedeutet.

Gruß
Demian

in etwa so:
Code
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set a = fs.CreateTextFile("c:\testfile.csv", True)
    a.writeline "Zeile 1 Spalte A;SpalteB;SpalteC"
    a.writeline "Zeile 2 Spalte A;SPalteB;SpalteC"
    a.Close
« Letzte Änderung: 19.03.07 - 17:13:31 von Demian »
Gruß
Demian

botschi

  • Gast
Re: Excel auf dem Server?
« Antwort #4 am: 20.03.07 - 13:34:31 »
Ja, Excel muss installiert sein.

Alte Naive:

http://www.eknori.de/archives/1



Danke dafür.

Leider komme ich damit nicht weiter.
Wenn ich nur die Sub "Click" einbinde, kann ich nicht kompilieren. Wenn ich Deine Frage auf Pams Beitrag richtig verstanden habe, muss man noch eine Klasse einbinden.
Auch das kann ich nicht kompilieren, weil u.a. diverse Variablen nicht deklariert sind...

Kannst Du mir nochmal eine kleine Hilfestellung geben, wie ich das in meinem Agenten einbinden kann? Ich würde den Code gerne verwenden oder zumindest mal probieren, ob das für uns in Frage kommt.

Danke!

Matthias

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: Excel auf dem Server?
« Antwort #5 am: 20.03.07 - 13:57:22 »
Eine Alternative sind auch Java Bibliotheken. Das gebräuchlichste ist zur Zeit jxl. Hier ein Beispiel:
http://www.java-tips.org/other-api-tips/jexcel/how-to-create-an-excel-file.html
oder POI-HSSF: http://jakarta.apache.org/poi/hssf/index.html
« Letzte Änderung: 20.03.07 - 13:59:21 von Axel Janssen »
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Excel auf dem Server?
« Antwort #6 am: 20.03.07 - 15:12:08 »
@Axel: das jexcel funktioniert ja super; merci für den Tipp
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

botschi

  • Gast
Re: Excel auf dem Server?
« Antwort #7 am: 20.03.07 - 15:59:58 »
Leider habe ich (noch) keine Ahnung von Java.
Trotzdem habe ich versucht, das Beispiel umzusetzen. Es scheiterte daran, dass ich das jexcelapi.jar nicht eingebunden bekommen habe...

Ich habs auch noch nicht verworfen, sondern für später bereit gelegt.
Jetzt habe ich aber noch das akute Problem, dass der Code von Eknori bei mir nicht funzt.

Beim Speichern bekomme ich den Fehler, dass createfile kein Member ist... Die Klasse "ExcelFile" ist aber in Declarations vorhanden  ???

Eknori, kannst Du mir einen Hinweis geben was ich falsch mache?

Danke!

Matthias

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Excel auf dem Server?
« Antwort #8 am: 20.03.07 - 17:27:59 »
@Matthias:

Habe dir in der angehängten Datei mal meinen Code in eine Aktion eingebaut. Schaue es dir an und dann sage mir, was du falsch gemacht hast ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

botschi

  • Gast
Re: Excel auf dem Server?
« Antwort #9 am: 20.03.07 - 17:55:55 »
Danke! Danke, danke!

Ich glaube mein Fehler war, dass ich "Option declare" in den Options hatte... Wenn ich das entferne, kann ich den Agenten auch speichern und ausführen. Ich habe sogar ne Datei mit dem Agenten erzeugt  ;D

Allerdings habe ich auf meiner Maschine auch Excel installiert... Ich werde das jetzt mal einmalig periodisch auf dem Server starten und die Datei verschicken.
Mein Ziel soll ja sein, dass der Agent periodisch auf dem Server ausgeführt wird und am Ende des Laufs wird diese Datei an versch. Personen gesendet.

Muss die Datei physisch auf dem Server gespeichert werden, damit ich diese verschicken kann?

Würde ja auch noch gehen, ich kann diese nach dem versenden ja wieder löschen oder in einem Dokument archivieren oder sowas.

Ich sehe wieder Licht am Ende des Tunnels.
Danke nochmal.

Matthias

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Excel auf dem Server?
« Antwort #10 am: 20.03.07 - 17:59:47 »
Zitat
Muss die Datei physisch auf dem Server gespeichert werden, damit ich diese verschicken kann?

yo, das musst du
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

Offline rasacani

  • Aktives Mitglied
  • ***
  • Beiträge: 155
  • Geschlecht: Männlich
  • Ich brauche dieses Forum!
Re: Excel auf dem Server?
« Antwort #11 am: 20.03.07 - 20:47:23 »
Hallo

Da bin ich wieder. Ich habe mich getraut (LS). Ich gebe eine Excel-Datei aus und es klapp auch, aber nicht auf dem Server. Ich habe hier gelesen, das man als alterative auch eine CSV-Datei ausgeben kann. Dies habe ich dann promt eingebaut

-->  OLE: Automation object error       -->      ???

hier die Stelle wo ich es eingebaut habe:

   Else  ' alle Documente
      Set fs = CreateObject("Scripting.FileSystemObject")
      Set abc = fs.CreateTextFile("c:\Raitest.csv", True)

      Set otherdoc = otherview.GetFirstDocument 
      While Not otherdoc Is Nothing 
         abc.writeline otherdoc.columnvalues(1)      
         For colmn = 0 To Ubound(otherview.Columns)
            
            MulCol = otherdoc.columnvalues(colmn)
            If Isarray(MulCol) Then
               ColCat = Cstr(MulCol(0) )
               For ColNum=1 To Ubound(MulCol)
                  ColCat=ColCat & " | " & Cstr(MulCol(ColNum))
               Next ColNum
               
               xlApp.cells(row,colmn+1) = ColCat
            Else
               xlApp.cells(row,colmn+1) = Cstr( MulCol )
            End If
      'xlApp.cells(row,colmn+1) = otherdoc.columnvalues(colmn)      
         Next   
         row=row+1 
         Set otherdoc = otherview.GetNextDocument(otherdoc)     
      Wend

      abc.close
   End If

Was kann das denn schon wieder sein?

Rainer

Offline rasacani

  • Aktives Mitglied
  • ***
  • Beiträge: 155
  • Geschlecht: Männlich
  • Ich brauche dieses Forum!
Re: Excel auf dem Server?
« Antwort #12 am: 20.03.07 - 21:04:40 »
Sorry   8) 8) 8)


mein Beitrag sollte woanders hin.


Rainer

botschi

  • Gast
Re: Excel auf dem Server?
« Antwort #13 am: 21.03.07 - 12:54:57 »
Zitat
Muss die Datei physisch auf dem Server gespeichert werden, damit ich diese verschicken kann?

yo, das musst du

Könnte man das Script so umstellen, dass ich mir keine neue Datei erzeuge sondern eine Vorlage öffne, die als Anhang in einem Dokument abgelegt wurde? Oder irgendwo ausm Netzlaufwerk heraus?
Die Vorlage (mit Formel) kopieren und in meine Datei einfügen oder sowas?

Matthias

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Excel auf dem Server?
« Antwort #14 am: 21.03.07 - 13:00:40 »
Klar kann man das Script umbauen; mach ich aber nicht ...  ;D

Für den Fall, den du ansprichst, ist das hier eine geeignete Lösung http://jxls.sourceforge.net/
( langsam aber sicher machen mir die Java Dinger richtig Spass ! )
Zitat
jXLS is a project that implements this approach and allows creation of extremely complex Excel reports just in several lines of code. All you need is to create XLS template file with all required formatting, formulas, macros etc using specific notation to indicate placement of data and then write a couple lines of code to invoke jXLS engine passing XLS template and the exported data as parameters.
« Letzte Änderung: 21.03.07 - 13:02:13 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

botschi

  • Gast
Re: Excel auf dem Server?
« Antwort #15 am: 21.03.07 - 13:06:19 »
Gut.
Diese Java Dinger interessieren mich im Prinzip auch, aber nicht wenn ich ein wenig Zeitdruck habe...

Ich verstehe Dich so, dass man das Script zwar generell umbauen KÖNNTE, es aber wohl nicht trivial ist und ich selber das wohl nicht kann. Ist das richtig?

Einfacher wird es für mich dann wohl sein, wenn Excel auf dem Server installiert wird und ich mir eine Vorlage schnappe, die ich dann nur noch fülle.

Trotzdem Danke für Deine Mühe!

Matthias

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Excel auf dem Server?
« Antwort #16 am: 21.03.07 - 13:09:02 »
Zitat
wohl nicht trivial ist
Richtig, weil der komplette XLS Reader Kram fehlt. Und der Interpreter für die Formeln etc etc ...

Da hast du dich schneller in jXLS eingearbeitet ...
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

botschi

  • Gast
Re: Excel auf dem Server?
« Antwort #17 am: 21.03.07 - 13:31:23 »
Es ist ohnehin gefährlich Code produktiv zu nutzen, den ich nicht verstehe oder ändern kann.
Wenn ich jetzt auch noch Java einbinde (wovon ich NULL Ahnung habe) führe ich mich quasi ja selber zur die Schlachtbank...
Ich weiß noch nicht einmal, wie ich was in den Classpath einfügen kann oder wie ich diesen finde. Die Hilfe (Admin und Designer) kurz durchsucht und keinen Hinweis gefunden wie "drücken Sie hier und da und fügen da etwas ein, um ihr .jar einzufügen".

jXLS scheint wirklich eine Lösung zu sein, die extra für mich und mein Problem geschaffen wurde...
Leider bin ich im Moment noch zu doof, dieses für mich zu nutzen...

Matthias

Offline eknori

  • @Notes Preisträger
  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 11.728
  • Geschlecht: Männlich
Re: Excel auf dem Server?
« Antwort #18 am: 21.03.07 - 16:35:19 »
ich habe hier mal eine SampleDB gebaut. Die Datei enthält alle notwendigen *.jar files und einen Agenten ("XLS"). Der erstellt unter Beteiligung der xls-Datei "c:\in.xls" die Datei "c:\out.xls" und schreibt dort ein paar Daten rein. Das Template macht daraus Diagramme. ( wie in http://jxls.sourceforge.net/samples/chartsample.html )

Ich habe zwar immer noch nicht begriffen, was ich denn wie, wann warum in die import ... Statements schreiben muss, aber das finde ich noch raus. Der Agent ist mehr ein Resultat von try&error als von fundierten Kenntnissen der Materie  ;D

« Letzte Änderung: 22.03.07 - 06:08:10 von eknori »
Egal wie tief man die Messlatte für den menschlichen Verstand auch ansetzt: jeden Tag kommt jemand und marschiert erhobenen Hauptes drunter her!

botschi

  • Gast
Re: Excel auf dem Server?
« Antwort #19 am: 21.03.07 - 17:59:33 »
Ich hab Pipi in den Augen  :o

Das Beispiel liefert zwar noch lange nicht das Ergebnis was ich brauche, aber der Anfang ist gemacht.
Ausserdem habe ich ein schlechtes Gewissen, weil Du mir hier den ganzen Beitrag über zur Seite standst und nun auch noch Code geliefert hast.

Was soll ich da noch sagen, ausser DANKE  :-*

Damit hast Du Dir einen Eintrag in mein Buch der guten Leute gesichert  ;D
Wer weiss, irgendwann kann ich Dir vielleicht auch mal helfen- in irgendeiner Art und Weise.

Matthias

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz