Вопрос:

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

c# csv datarow

3899 просмотра

4 ответа

63 Репутация автора

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

Автор: Dashzapp Источник Размещён: 08.03.2012 06:48

Ответы (4)


0 плюса

4602 Репутация автора

Решение

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

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

Автор: ctorx Размещён: 08.03.2012 06:51

3 плюса

0 Репутация автора

Попробуйте с помощью следующего кода:

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());
Автор: user1082916 Размещён: 08.03.2012 06:56

0 плюса

9904 Репутация автора

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

Согласно быстрому старту вы можете написать код так:

[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);
Автор: Aaron Anodide Размещён: 08.03.2012 07:16

0 плюса

356 Репутация автора

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

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

}
Автор: Christopher Smit Размещён: 19.06.2019 12:19
Вопросы из категории :
32x32