Are there any CSV readers/writer libraries in C#?

2019-01-03 05:36发布

Are there any CSV readers/writer libraries in C#?

标签: c# csv
5条回答
冷血范
2楼-- · 2019-01-03 05:56

Yes - though I assume you're actually asking for specifics?

Try FileHelpers

查看更多
冷血范
3楼-- · 2019-01-03 05:57

Try CsvHelper. It's as easy to use as FastCsvReader and does writing also. I've been very happy with FastCsvReader in the past, but I needed something that does writing also, and wasn't happy with FileHelpers.

Reading:

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

Writing:

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

Full Disclosure: I am the author of this library.

查看更多
Rolldiameter
4楼-- · 2019-01-03 05:58

There are dozens.

http://www.filehelpers.net/ is one of the most common.

I should say that I find Filehelpers restrictive in some scenarios, and instead use The Fast CSV Reader. In my experience, if you dont know the format of your CSV file or import mapping until runtime - this is the better library to use.

查看更多
贪生不怕死
5楼-- · 2019-01-03 06:03

Sebastien Lorion has a great CSV reader on CodeProject called A Fast CSV Reader. Probably one of the best for C# and it's free.

As far as writing, just use StreamWriter.

Here is some boilerplate code for writing a DataGridView to a file:

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();
            }
        };
    }
}
查看更多
冷血范
6楼-- · 2019-01-03 06:13

There are a couple of options, right in the framework itself.

One of the easiest is to Reference Microsoft.VisualBasic, then use TextFieldParser. It is a fully functional CSV reader in the core framework.

Another good alternative is to use datasets to read CSV files.

查看更多
登录 后发表回答