Csv file generálás

Csv file generálás
2018-04-03T10:04:01+02:00
2018-04-03T11:22:54+02:00
2022-10-15T21:31:32+02:00
Vazulka#13
Sziasztok!
Egy SQL lekérdezés eredményét szeretném .CSV fájlba menteni. Próbáltam DataTabla, List<string[]> majd Stringbuilder + append, Streamwriter, textwriter felhasználásával is, de az eredmény mindig az lett hogy egy sort egy cellába zúdít be. 

Példa a List<string[]>  + streamwriter-re:

public static void WriteToCsv(string fnam, List<string[]> listc) { string pat = @"..\..\Excel" + fnam + ".csv"; using (StreamWriter writer = new StreamWriter(pat, false, Encoding.Default)) { for (int i = 0; i < listc.Count; i++) { string t = string.Join(",", listc
); writer.WriteLine(t); } writer.Close(); } }
List<string[]> + stringbuilder + appendline

public static void WriteToCsv(string fnam, List<string[]> listc) { string pat = @"..\..\Excel" + fnam + ".csv"; StringBuilder sb = new StringBuilder(); for (int i = 0; i < listc.Count; i++) { string t = string.Join(",", listc
); sb.AppendLine(t); } File.AppendAllText(pat, sb.ToString()); }
Illetve Datatable + streamwriter

public static void WriteToStream(string fnam, System.Data.DataTable table, bool header, bool quoteall) { string pat = @"..\..\Excel" + fnam + ".csv"; StreamWriter stream = new StreamWriter(pat, false, Encoding.Default); if (header) { for (int i = 0; i < table.Columns.Count; i++) { WriteItem(stream, table.Columns
.Caption, quoteall); if (i < table.Columns.Count - 1) stream.Write(','); else stream.Write('\n'); } } foreach (DataRow row in table.Rows) { for (int i = 0; i < table.Columns.Count; i++) { WriteItem(stream, row
, quoteall); if (i < table.Columns.Count - 1) stream.Write(','); else stream.Write('\n'); } } stream.Flush(); stream.Close(); } private static void WriteItem(TextWriter stream, object item, bool quoteall) { if (item == null) return; string s = item.ToString(); if (quoteall || s.IndexOfAny("",\x0A\x0D".ToCharArray()) > -1) stream.Write(""" + s.Replace(""", """") + """); else stream.Write(s); stream.Flush(); }
Nem lehetséges hogy itt inkább az Excel-lel lehet valami beállítási probléma?
Előre is köszönöm a segítséget..






Mutasd a teljes hozzászólást!
A magyar Excel vessző helyett pontosvesszőt használ elválasztónak! 
Vagy írd pontosvesszővel vagy állítsd át az op.rendszert angol nyelvi beállításra (nézd meg a listaelválasztót, a tizedesjelet is!) Esetleg próbáld Mac CSV formában beolvasni.
Mutasd a teljes hozzászólást!

  • A PolyJoe által említettek miatt én inkább TSV-t szoktam használni, valamint a tizedesvessző-tizedespont használatát állíthatóvá teszem.
    Előnye, hogy a tabulátor nem szokott törtészt jelölni semmilyen nyelven, ráadásul így akár sima copy-paste-vel is működik (az én kódom webes, és nem mindenki akarja lementeni a cuccokat egy külön fájlba). Hátránya, hogy a CSV-nél kevésbé olvasható - de őszintén szólva a CSV sem igazán az (különösen ha üres oszlopok is vannak benne).
    Mutasd a teljes hozzászólást!
  •  
    Éreztem hogy valahol az excelben lesz a probléma és nem a kódban...
    Köszi a segítséget! 
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd