Announcement

Collapse
No announcement yet.

Excel - Problem mit Dateispeicherung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Excel - Problem mit Dateispeicherung

    Hallo ins Forum,


    meine .NET-Anwendung beinhaltet die Möglichkeit, diverse Auswertungen zu generieren (Excel-Mappe). Dies soll nun auch über einen Server-Task möglich sein. Dazu wird die Anwendung mit einem Parameter gestartet und ist soweit modifiziert, dass sämtliche Hinwesmeldungen unterbunden werden.

    Nun zu meinem Problem: das speichern der generierten Auswertung mit Excel 2003. Beim Aufruf über die Windows-Eingabeaufforderung funktioniert alles wunderbar; als Task auf dem Server funktioniert das speichern leider nicht.
    Ich habe schon alle möglichen Varianten ausprobiert:

    a) Vorlage ins Zielverzeichnis kopiert, geöffnet, mit Werten gefüllt und gespeichert
    b) Vorlage (Netzwerkpfad) öffnen und mittels SaveCopyAs im Zielverzeichnis gespeichert
    c) Vorlage (Netzwerkpfad) öffnen und mit SaveAs im Zielverzeichnis gespeichert

    Egal welche Variante, als Task gestartet verweigert Excel das speichern. Sämtliche zur Laufzeit erzeugten Excel-Verweise werden gelöscht (=nothing bzw. ReleaseComObject(....)) und letztlich Excel beendet (Excel.Quit oder auch ein KILL).

    Zum Code (ausschnittsweise aus dem Kopf, habe ich gerade nicht vorliegen):
    Code:
    Dim app as Object
    Dim wb as Object
    Dim sh as Object
    
    app=getObject(, Excel.Application)
    app.Visible = false
    app.DisplayAlerts = false
    app.AlertBeforeOverwriting = false
    wb = app.Workbooks.add(vorlagedatei)
    sh = wb.sheets(1)
    ...
    
    sh.cells(x,y).value = XXX
    ...
    sh = nothing
    Dim dateiname as string = "www007.beispiel.com\test\ergebnis.xls"
    wb.Save() oder wb.SaveAs(dateiname) oder wb.SaveCopyAs(dateiname)
    wb.Saved = true
    wb.Close()
    wb=nothing
    app.Quit()
    app=nothing
    GC.Collect()
    ...
    Hat jemand hilfreiche Tipps parat, wie das mit dem Servertask funktionieren kann? Die Möglichkeit, das als wb.ActiveWorkbook.Save() umzuschreiben möchte ich gern vermeiden, da im worstCase (manueller Aufruf über Kommandozeile wie oben beschrieben) ggf. eine andere Excel-Arbeitsmappe gespeichert wird.


    Schon jetzt DANKE für Eure Hilfe

    Gerald
Working...
X