2017-06-03 10 views
1

データをCSVにエクスポートしようとしています。しかし、すべて正常に動作しますが、私の出力は1つの列に入れられます。それはうまく次の行に移動しますが、新しい列に入れる方法はわかりません。また、データベースに依存するので、列の数を事前に定義することはできません。私は、私が変えなければならない小さな事がほとんどあると確信しています。csvの内容をstringbuilderの別の列に移動する

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はロケールリストセパレータを使用します。コンマはアメリカではありますが、それはあなたの国では別のものかもしれません。 TextInfo.ListSeparatorをチェックする –

答えて

1

その答えは、列の最後の後にカンマを使用する代わりに、
これはListSeparatorsに依存し、場所によって異なります。

関連する問題