Hallo,
ich möchte aus einem DataTable die Elemente auslesen und in eine CSV speichern.
public static void writeCSV(DataTable _dt, String _sFilePath)
{
StreamWriter sw = new StreamWriter(_sFilePath, false);
int iCol = _dt.Columns.Count;
for (int i = 0; i < iCol; i++)
{
sw.Write(_dt.Columns[i]);
if (i < iCol - 1)
{
sw.Write(","); //HIER MUSS WOHL WAS VERÄNDERT WERDEN
}
}
sw.Write(sw.NewLine);
....
Er liest es auch ein, aber packt alles in eine Spalte. Ich möchte es gerne Spaltenweise auslesen.
Bsp.:
Im DataTable: ID Name Desc Sonstiges
Beim einlesen: ID,Name,Desc,Sonstiges
Ich versuche die Einträge pro Spalte einzulesen. Hoffe ich konnte das Problem erklären.
Danke schön.
Lg
manda
Hi,
mit was ließt du denn die CSV-Datei ein? Mit Excel?
Im CSV-Format trennt man normalerweise mit ";" und nicht mit ",", eventuell ist ja das schon das Problem.
Gruß
Roland
Hallo Manda,
bei arbeiten mit CSV Dateien kann ich dir nur FileHelpers ans Herz legen. Ich weiß zwar nicht was für Daten du in der CSV speichern willst. Aber wenn du versuchst die CSV Datei wieder ein zu lesen, wirst du ansonsten wahrscheinlich sehr schnell auf probleme stoßen wenn einzelne Felder Zeilenumbrüche beeinhalten.
Mfg
Rabban
Hi Manda,
Dein Problem liegt wohl wo anders, denn Dein Code sieht soweit gut aus. Siehe Test:
private void Test()
{
string[] columns = new string[] { "Hallo", "Welt", "123" };
int iCol = columns.Length;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < iCol; i++)
{
sb.Append(columns[i]);
if (i < iCol - 1)
{
sb.Append(","); //Sieht gut aus
}
}
MessageBox.Show(sb.ToString());// "Hallo,Welt,123"
}
Zeige mal die Cloumns-Werte und Dein Ergebnis (Bzw. Teil davon).
Gruß, CoLo