有没有在C#中可以读写CSV的库?
试试CsvHelper。它使用起来与FastCsvReader一样容易,而且还可以写入。我之前一直很满意FastCsvReader,但我需要一个同时能读写的东西,而且对FileHelpers也不满意。
翻译:
尝试使用CsvHelper。它与FastCsvReader一样易于使用,同时还可进行写入操作。过去我一直很喜欢FastCsvReader,但我需要一个既能读又能写的工具,并且对FileHelpers不太满意。var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
写作:
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
完全公开:我是这个库的作者。
WriteField
。在这里查看文档 https://joshclose.github.io/CsvHelper/ - Josh CloseCsvHelper
的推荐方式。也许它可以在那个位置提供一些替代的读取策略?顺便说一下,我已经删除了我的原始评论,因为现在它已经不相关了 :-) - Zimano有几种选项可以在框架本身中处理。
最简单的之一是引用Microsoft.VisualBasic,然后使用TextFieldParser。 它是核心框架中完全功能的CSV阅读器。
另一个不错的选择是使用数据集来读取CSV文件。
Sebastien Lorion在CodeProject上有一个很棒的CSV阅读器,名为快速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();
}
};
}
}
有几十种选择。
http://www.filehelpers.net/ 是其中最常见的之一。
我必须说,我发现 Filehelpers 在某些情况下很受限制,因此我使用 The Fast CSV Reader 代替。 根据我的经验,如果您不知道 CSV 文件或导入映射的格式直到运行时 - 这是更好的库要使用。
.net csv library
的第一个结果。虽然只是个人经验,但我的说法得到了证明,因为过去六年中,这个问题已被查看超过22000次。 - shovavnik