Trader999 Ответов: 2

Экспорт данных в csv с помощью csvhelper


Я пытаюсь использовать библиотеку csvhelper для экспорта существующей таблицы данных (не набора данных) под названием CHAIN в csv-файл. Похоже, мне нужно создать новую таблицу данных и загрузить в нее цепочку, а не просто перебирать цепочку, но я не знаю, как это сделать. Пожалуйста, взгляните на код ниже и дайте мне знать, что случилось?

Что я уже пробовал:

public void EXPORT_CSV()
        {
            using (var textWriter = File.CreateText(@"D:\Temp\NewCsv.csv"))
            using (var csv = new CsvWriter(textWriter))
            using (var DT = new DataTable())
            {
                //dt.Load(CHAIN); not sure how to do this

                // Write columns
                foreach (DataColumn column in DT.Columns)       //copy datatable CHAIN to DT, or just use CHAIN
                {
                    csv.WriteField(column.ColumnName);
                }
                csv.NextRecord();

                // Write row values
                foreach (DataRow row in DT.Rows)
                {
                    for (var i = 0; i < DT.Columns.Count; i++)
                    {
                        csv.WriteField(row[i]);
                    }
                    csv.NextRecord();
                }
            }
        }

Richard MacCutchan

дай мне знать, что случилось?
Вы не объяснили, в чем проблема.

2 Ответов

Рейтинг:
1

Narshe

Это есть в документации. CsvHelper[^]


Рейтинг:
0

Richard Deeming

Основываясь на вашем коде, похоже, что вам просто нужно удалить using (var DT = new DataTable()) строка, и заменить каждую ссылку на DT с CHAIN:

public void EXPORT_CSV()
{
    using (var textWriter = File.CreateText(@"D:\Temp\NewCsv.csv"))
    using (var csv = new CsvWriter(textWriter))
    {
        // Write columns
        foreach (DataColumn column in CHAIN.Columns)
        {
            csv.WriteField(column.ColumnName);
        }
        csv.NextRecord();
 
        // Write row values
        foreach (DataRow row in CHAIN.Rows)
        {
            for (var i = 0; i < CHAIN.Columns.Count; i++)
            {
                csv.WriteField(row[i]);
            }
            csv.NextRecord();
        }
    }
}