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):
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
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() ...
Schon jetzt DANKE für Eure Hilfe
Gerald