Датаров до CSV линии C # - PullRequest
       13

Датаров до CSV линии C #

4 голосов
/ 08 марта 2012

Существует ли какая-либо форма заявления, которая преобразует datarow в строку CSV, чтобы его можно было записать в файл .csv? (с или без промежуточных шагов)

Ответы [ 4 ]

3 голосов
/ 08 марта 2012

Попробуйте ввести следующий код:

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());
0 голосов
/ 19 июня 2019

ниже работает для меня.

foreach (DataRow row in rows)
{
    string line = "";
    for (int i = 0; i < row.ItemArray.Length; i++)
    {
         line += row[i] + ",";  
    }
    line = line.TrimEnd(',');

}
0 голосов
/ 08 марта 2012

Я смотрел на в этот на днях:

В соответствии с кратким описанием вы можете написать код так:

[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);
0 голосов
/ 08 марта 2012

Быстрый поиск в Google нашел это: http://www.rcs -solutions.com / blog / 2009/01/15 / ConvertDataTableToCSVViaExtensionMethod.aspx

Это несколько устарело.Нет никакого собственного способа сделать это, поэтому вам нужно либо перебрать данные, используя циклические конструкции, но я бы рекомендовал использовать методы LINQ, так как это будет намного чище.

...