Entwickler-Ecke
Basistechnologien - Excel schreiben
daniel_sudy - Do 31.01.08 18:13
Titel: Excel schreiben
Guten Tag, habe folgendes Problem. In meinem Programm verfüge ich über 3 Arrays die mit string Werten gefüllt sind. Nun möchte ich diese Werte in eine Excel Arbeitsmappe schreiben, sprich 1 Array in 1 Spalte im Excel, 2. Array in 2 Spalte....
Wie kann ich da am besten realisieren?
Hat jemand eine Hilfe für mich?
Moderiert von
Christian S.: Topic aus C# - Die Sprache verschoben am Do 31.01.2008 um 18:15
golgol - Fr 01.02.08 09:21
Also ausserhalb von .NET würde ich das über COM machen - es gibt da ne Excel Object Library, die man einbinden kann. Ich kann dir nicht sagen, ob es in .NET eine bessere Möglichkeit gibt, aber die COM-DLL kannst du ja auch in C#/.NET problemlos verwenden.
Dave86 - Fr 01.02.08 09:36
Hi golgol.
Hier mein vorschlag...
erzeug dir nen Streamwrite mit xls endung und dann diese Funktion
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18:
| public void AddRow(object[] objRowContent, ref StreamWriter swExcelFile) { swExcelFile.WriteLine("<tr>"); foreach (object obj in objRowContent) { if (obj == null) { swExcelFile.WriteLine("<td>" + "</td>"); } else { swExcelFile.WriteLine("<td>" + obj.ToString() + "</td>"); } } swExcelFile.WriteLine("</tr>"); } |
Moderiert von
Christian S.: Code- durch C#-Tags ersetzt
golgol - Fr 01.02.08 09:57
Dave86 hat folgendes geschrieben: |
Hi golgol.
Hier mein vorschlag...
erzeug dir nen Streamwrite mit xls endung und dann diese Funktion |
Hmm, dann hättest du ne ASCII-Datei mit der Endung und den HTML-Tabellen-Tags darin .. oder? Also wenn dem so ist (hab hier grade keinen Kompiler oder so zu Verfügung), dann würde Excel dann doch je eine Zeile aus der Datei in die Felder A1 bis An schreiben oder? (Wie gesagt, konnte es hier nicht testen).
Dave86 - Fr 01.02.08 10:07
Hi golgol.
Also ich weiß dass diese Art Funktionert musst halt am Anfang noch <table> schrieben...
Excel erkennt das und öffnet es korrekt...hab ich ausprobiert...
ja ist richtig der schreibt dann A1 bis An ..aber wenn du eh nur 3 Spalten schreiben willst übergib das Array und schreib dann A1[i],A2[i] und A3[i]..
sollte man doch so umstricken können.
daniel_sudy - Fr 01.02.08 17:54
Danke mal dafür so jetzt noch eine Frage, wie wende ich diese Funktion an?
Also wenn mein Array z.b Test heißt, kann ich das dann so schreiben:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| StreamWriter writeExcel = new StreamWriter("test.xls"); string[] test = new string[1]; test[0] = "Wert1"; test[1] = "Wert2";
AddRow(test,writeExcel); |
Moderiert von
Christian S.: C#-Tags hinzugefügt
Kha - Sa 02.02.08 12:25
So dürfte es fast funktionieren, drei Dinge noch:
- Entferne das "ref" aus Daves Code, ist unnötig.
- Denke noch einmal über die Array-Größe nach ;) .
- den Writer natürlich am Ende noch schließen => using-Block
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!