Laden...

Konsolenanwendung mit Excel-Inhalt lässt sich nicht als Auftrag starten

Erstellt von GPuffe vor einem Jahr Letzter Beitrag vor einem Jahr 776 Views
G
GPuffe Themenstarter:in
11 Beiträge seit 2009
vor einem Jahr
Konsolenanwendung mit Excel-Inhalt lässt sich nicht als Auftrag starten

Ich habe eine Excel-Konsolenanwendung geschrieben, welche sich eine CSV-Datei holt, diese in ein Excel-Sheet einfügt, formatiert und als Excel-Datei speichert.
Dafür gibt es dann einen Auftrag auf einem Server, der täglich diese Listen erstellt. Ich habe das ganze in ein PowerShell-Skript gepackt, da noch ein paar andere Aufgaben mit der Datei erfolgen. Wenn ich das Skript von Hand (mit PowerShell) starte, funktioniert alles bestens. Aber als Auftrag läuft es weder zeitgesteuert, noch manuell gestartet. Die Excel-Datei wird nicht erzeugt.
Der Benutzt mit dem ich die Anwendung starte ist immer der Gleiche und hat auch alle Rechte. Und Excel ist auch auf dem Server installiert.
Kennt jemand das Problem, oder hat einen guten Hinweis für mich?

Vielen Dank schon mal!
Gerald

16.841 Beiträge seit 2008
vor einem Jahr

Excel ist eine Desktop-Anwendung, die IIRC eine User Shell benötigt.
Du kannst es also nicht ohne solches automatisieren.

Wieso nutzt Du nicht einfach, wie es seit bald 15 Jahren gibt, OpenXML für sowas?
Wegen sowas wurde OpenXML erfunden, weil die Office Anwendungen nie für solche Automatisierungen gedacht waren/sind.

Gibt auch sehr beliebte NuGets dafür
https://www.nuget.org/packages/EPPlus
https://www.nuget.org/packages/ClosedXML

Aber Excel dafür zu automatisieren ist wahrlich nicht die beste Idee.

G
GPuffe Themenstarter:in
11 Beiträge seit 2009
vor einem Jahr

Hallo,

ich habe jetzt eine Excel-Datei mit einem Sheet erzeugt (mit OpenXML). Nun möchte ich Daten aus einer CSV-Datei dort einfügen. Gibt es dafür schon ein Beispiel? Beim Suchen im Internet habe ich erstmal leider nichts gefunden.

Schon mal vielen Dank
Gerald

16.841 Beiträge seit 2008
vor einem Jahr

Wir müssten in 99% der Fälle jetzt auch suchen, wie Du.
Aber ich bezweifle, dass Du dazu ein 1:1 Beispiel findest - denn so funktioniert weder OpenXML noch Logik.
Dort wirst kaum openXml.AddMyPersonalCsvStuffByBlackMagic() finden.

Wie Du Elemente in einer OpenXML ersetzt / hinzufügst, das findest dort in der Doku.
Das Parsen einer CSV wirst auch irgendwo finden; und Deine Aufgabe ist nun beides zu kombinieren.
Denke, dass Du das hin bekommen wirst.