C#中是否有任何CSV读/写库?

时间:2009-12-21 17:16:38

标签: c# csv

C#中是否有CSV个读者/作者库?

5 个答案:

答案 0 :(得分:91)

试试CsvHelper。它与FastCsvReader一样易于使用,也可以写入。我过去对FastCsvReader非常满意,但我也需要写一些东西,并且对FileHelpers不满意。

<强>读:

var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();

<强>书写:

var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );

完全披露:我是这个图书馆的作者。

答案 1 :(得分:19)

在框架本身中有几种选择。

最简单的方法之一是引用Microsoft.VisualBasic,然后使用TextFieldParser。它是核心框架中功能齐全的CSV阅读器。

另一个好的选择是use datasets to read CSV files

答案 2 :(得分:16)

Sebastien Lorion在CodeProject上有一位名为A Fast CSV Reader的优秀CSV读者。可能是C#最好的之一,它是免费的。

就写作而言,只需使用StreamWriter

以下是一些用于将DataGridView写入文件的样板代码:

private void exportDGVToCSV(string filename)
{
    if (dataGridView1.Columns.Count != 0) 
    {    
        using (Stream stream = File.OpenWrite(filename))
        {
            stream.SetLength(0);
            using (StreamWriter writer = new StreamWriter(stream))
            {
                // loop through each row of our DataGridView
                foreach (DataGridViewRow row in dataGridView1.Rows) 
                {
                    string line = string.Join(",", row.Cells.Select(x => $"{x}"));
                    writer.WriteLine(line);
                }

                writer.Flush();
            }
        };
    }
}

答案 3 :(得分:8)

是的 - 虽然我认为你实际上是在询问具体细节吗?

尝试FileHelpers

答案 4 :(得分:3)

有几十个。

http://www.filehelpers.net/是最常见的一种。

我应该说在某些情况下我发现Filehelpers是限制性的,而是使用The Fast CSV Reader。根据我的经验,如果您不知道CSV文件的格式或导入映射直到运行时 - 这是更好的库。