записывать данные в CSV-файл, разделяя поля запятыми, используя c# string builder - PullRequest
0 голосов
/ 03 марта 2020

Мне нужно записать мои данные в CSV-файл для формата ниже. «field1orow1», «field2ofrow2», «field3ofrow» «field1ofrow2», «field2ofrow2», «field3ofrow2» над форматом, после каждой строки запятая не должна применяться, а также разрыв строки не должен. Вот мой код

 var csvDataList = oCVFileDTO.Select(y => new { y.BatchNo, y.ItemName, y.Empno, y.GlCode, y.CostCenter, 
 y.TotalAmount, y.FinanceApprovedDate, y.ReferenceNo }).ToList();
                    DataTable dt = converter.ToDataTable(csvDataList);

                    string FileCSV = FilePath + FileName;
                    IEnumerable<string> columnNames = dt.Columns.Cast<DataColumn>().
                    Select(column => column.ColumnName);
                    StringBuilder sb = new StringBuilder();
                    sb.Append("\"");
                    foreach (DataRow row in dt.Rows)
                    {
                        string[] fields = row.ItemArray.Select(field => field.ToString()).ToArray();
                        sb.Append(string.Join("\",\"", fields));
                        sb.Append("\"");
                        sb.Append(",");
                    }

                    File.WriteAllText(FileCSV, sb.ToString());
                    txtfilename.Text = string.Empty;
                    ShowMessage("CSV Export Successfully !");

, но это не выводит формат, который мне нужен. вывод этой команды выглядит следующим образом

...