C# Programmierung | Zu Excel übertragen?

4 Antworten

Wenn du das mit dem StreamWriter machen willst, ist meine einzige Idee, dass du versuchst, ein Tab zu senden, wodurch Excel vielleicht in die nächste Zelle geht.

Ansonsten kannst du mit der Excel Interop API auf die Zellen zugreifen, wie du es auch mit VBA machen könntest. https://docs.microsoft.com/de-de/dotnet/csharp/programming-guide/interop/how-to-access-office-onterop-objects

Eine Möglichkeit wäre es, die Daten als CSV auszugeben:

sw.WriteLine("\"Name:\";\"{0} {1}\"",name1,nachname1);
sw.WriteLine("\"Fach:\";\"{0}\"",faecher[fach]);
//TODO: Den ganzen Rest auf die selbe Weise.

P.S.: CSV ist ein überaus simples Format für tabellarische Daten. Jede Zeile ist eine Zeile, die einzelnen Zellen werden meist mit Semikolon oder Komma getrennt, Textwerte stehen üblicherweise in Anführungszeichen und falls das Komma als Spaltentrenner verwendet wird, wird bei Zahlenwerten der Punkt als Dezimaltrenner benutzt. (Soweit die Kurzfassung.)

P.P.S.: Es ginge natürlich auch TSV, ist ziemlich genau das gleiche wie CSV, nur dass anstelle eines Semikolons ein Tabulator als Spaltentrenner benutzt wird.

Woher ich das weiß:eigene Erfahrung

Falls du direkt ein Excel-Format schreiben möchtest, dann wäre das Nuget-Paket NPOI für dich interessant.

Woher ich das weiß:Berufserfahrung – Senior-Softwaredeveloper mit 20 Jahren Berufserfahrung.

Ok, ich sehe das richtig, du schreibst in eine Datei.
Es gibt ein Format, das nennt sich csv (Comma Separated Value)
Das kann Exel einfach als Tabelle importieren. benutze ich auch um Daten von meinem Server in ein Googlesheet zu laden.

Das Format funktioniert so:

Jede Zeile ist eine Zeile in deiner Tabelle,

Jeder Wert in einer Spalte wird mit einem Komma, oder manchmal Semikolon abgeschlossen. Also hast du z.B. so was:

Name;Alter;PLZ
Max Mustermann;73;74593
Hermine Schulz;29;63942

als Beispiel

Woher ich das weiß:Berufserfahrung