2017-06-03 3 views
1

Ich versuche, Daten in eine CSV zu exportieren. Alles funktioniert gut, aber meine Ausgabe ist in einer Spalte. Es bewegt sich nett zu den nächsten Zeilen und so weiter, aber ich habe keine Ahnung, wie ich es in neue Spalten einfügen soll. Außerdem kann ich die Anzahl der Spalten nicht vordefinieren, da dies von der Datenbank abhängt. Ich bin mir fast sicher, dass es ein kleines Ding gibt, das ich ändern sollte.Inhalt von CSV in andere Spalte in stringbuilder verschieben

StringBuilder csvContent = new StringBuilder(); 
ClassDeclarationsDBEntities entities6 = new ClassDeclarationsDBEntities(); 
var subj = entities6.Subjects.Where(a => a.class_id == model.class_id).FirstOrDefault(); 
csvContent.AppendLine(subj.name.ToString()); 
csvContent.Append("Name,Surname"); 

foreach (var task in current) 
{ 
    csvContent.Append(task.name.Replace(" ",string.Empty)+","); 
} 

csvContent.AppendLine("Total"); 

foreach (var user in curr_users) 
{ 
    if (user.user_type.Replace(" ", String.Empty) == 1.ToString()) 
    { 
     csvContent.Append(user.name.Replace(" ", String.Empty) + ","); 
     csvContent.Append(user.surname.Replace(" ", String.Empty) + ","); 

     foreach (var task in current) 
     { 
      foreach (var grade in model.grading) 
      {  
       if (user.user_id == grade.user_id) 
       { 
        if (task.task_id == grade.task_id) 
        { 
         inside = grade.points; 
         i = i + grade.points;}}} 

     csvContent.Append(inside.ToString()+","); 
     inside = 0;} 
csvContent.AppendLine(i.ToString()+",");} 

i = 0;} 

byte[] buffer = Encoding.ASCII.GetBytes(csvContent.ToString()); 
return File(buffer, "application/CSV", "Report.csv"); 
+1

Excel verwendet Gebietsschema-Listentrennzeichen. Komma in den USA, aber es könnte etwas anderes in deinem Land sein. Überprüfen Sie TextInfo.ListSeparator –

Antwort

1

Also die Antwort ist, dass anstelle der Kommas nach dem Ende der Spalte sollte ich verwenden;
Dies hängt von ListSeparators ab und hängt vom Speicherort ab.

Verwandte Themen