Datarow в CSV строку C#
Существует ли какая-либо форма инструкции, которая преобразует datarow в строку CSV, чтобы ее можно было записать в a .csv-файл? (с промежуточными шагами или без них)
3 ответа:
Быстрый поиск в Google обнаружил это: http://www.rcs-solutions.com/blog/2009/01/15/ConvertDataTableToCSVViaExtensionMethod.aspx
Она немного устарела. Нативного способа сделать это нет, поэтому вам придется либо перебирать datatable, используя циклические конструкции, но я бы рекомендовал использовать методы LINQ, так как это будет намного чище.
Попробуйте использовать следующий код:
StringBuilder sb = new StringBuilder(); var columnNames = dt.Columns.Cast<DataColumn>().Select(column => column.ColumnName).ToArray(); sb.AppendLine(string.Join(",", columnNames)); foreach (DataRow row in dt.Rows) { var fields = row.ItemArray.Select(field => field.ToString()).ToArray(); sb.AppendLine(string.Join(",", fields)); } File.WriteAllText("test.csv", sb.ToString());
Я смотрел на это На днях:
В соответствии с quickstart вы можете написать код следующим образом:
[DelimitedRecord(",")] public class Customer { public int CustId; public string Name; public decimal Balance; } FileHelperEngine engine = new FileHelperEngine(typeof(Customer)); Customer[] res = engine.ReadFile("FileIn.txt") as Customer[]; engine.WriteFile("FileOut.txt", res);