C#中是否有CSV个读者/作者库?
答案 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)
是的 - 虽然我认为你实际上是在询问具体细节吗?
答案 4 :(得分:3)
有几十个。
http://www.filehelpers.net/是最常见的一种。
我应该说在某些情况下我发现Filehelpers是限制性的,而是使用The Fast CSV Reader。根据我的经验,如果您不知道CSV文件的格式或导入映射直到运行时 - 这是更好的库。