使用csvhelper将数据表导出到csv [英] Export datatable to csv using csvhelper

查看:350
本文介绍了使用csvhelper将数据表导出到csv的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用库csvhelper将名为CHAIN的现有数据表(不是数据集)导出到csv文件。看起来我需要创建一个新的数据表并将CHAIN加载到其中,而不是仅仅迭代CHAIN,但我不知道如何做到这一点。请看下面的代码,让我知道什么是错的?



我尝试过:



I'm trying to use the library csvhelper to export an existing datatable (not a dataset) called CHAIN to a csv file. It looks like I need to create a new datatable and load CHAIN into it, rather than just iterate over CHAIN, but I'm not sure how to do this. Please take a look at the code below and let me know what's wrong?

What I have tried:

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();
                }
            }
        }

推荐答案

根据您的代码,看起来您只需要使用(var DT = new DataTable())行删除,并用<$替换每个对 DT 的引用c $ c> CHAIN

Based on your code, it looks like you just need to remove the using (var DT = new DataTable()) line, and replace each reference to DT with 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();
        }
    }
}


这是在文档中。 CsvHelper [ ^ ]
This is in the documentation. CsvHelper[^]


这篇关于使用csvhelper将数据表导出到csv的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆