C#中是否有CSV读写器库?

C#中是否有CSV读写器库?,c#,csv,C#,Csv,C#中是否有读者/作者库?是的-尽管我想你实际上是在询问细节 试试看是的-尽管我想你实际上是在问细节 试试看,有几十个 是最常见的一种 我应该说,我发现FileHelper在某些情况下具有限制性,而是使用。根据我的经验,如果您在运行时之前不知道CSV文件的格式或导入映射,那么这是一个更好的库 有几十个 是最常见的一种 我应该说,我发现FileHelper在某些情况下具有限制性,而是使用。根据我的经验,如果您在运行时之前不知道CSV文件的格式或导入映射,那么这是一个更好的库 Sebastien L

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

是的-尽管我想你实际上是在询问细节


试试看

是的-尽管我想你实际上是在问细节

试试看,有几十个

是最常见的一种

我应该说,我发现FileHelper在某些情况下具有限制性,而是使用。根据我的经验,如果您在运行时之前不知道CSV文件的格式或导入映射,那么这是一个更好的库

有几十个

是最常见的一种


我应该说,我发现FileHelper在某些情况下具有限制性,而是使用。根据我的经验,如果您在运行时之前不知道CSV文件的格式或导入映射,那么这是一个更好的库

Sebastien Lorion在CodeProject上有一个很棒的
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();
            }
        };
    }
}

Sebastien Lorion在CodeProject上有一个很棒的
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();
            }
        };
    }
}

框架本身就有几个选项

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


另一个很好的选择是。

框架本身有两个选项

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

另一个好的选择是尝试。它和FastCsvReader一样易于使用,也可以进行书写。过去我对FastCsvReader很满意,但我也需要一些能写东西的东西,对FileHelper不满意

阅读:

var csv = new CsvReader( stream );
var myCustomTypeList = csv.GetRecords<MyCustomType>();
var csv = new CsvWriter( stream );
csv.WriteRecords( myCustomTypeList );
完全披露:我是这个图书馆的作者。

试试看。它和FastCsvReader一样易于使用,也可以进行书写。过去我对FastCsvReader很满意,但我也需要一些能写东西的东西,对FileHelper不满意

阅读:

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


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

这是我最喜欢的。很棒的小程序库。编写CSV很简单-只需使用普通的文本输出方法,并用逗号分隔。你真的只需要一个库/自定义处理程序来读取…@Reed:如果你想让逗号和引号正确转义,这并不简单。我甚至不确定这是否有一个标准化,但这是非常常见的。编写CSV比这要复杂一些。如果要在CSV文件中表示的数据包含逗号或新行,则需要用引号将数据括起来。如果新加引号的数据中有引号,则需要使用双引号转义引号。您当然可以自己编写该逻辑,但如果有一个库可以为您编写,那就太好了。标准化是RFC4180。这是我最喜欢的。很棒的小程序库。编写CSV很简单-只需使用普通的文本输出方法,并用逗号分隔。你真的只需要一个库/自定义处理程序来读取…@Reed:如果你想让逗号和引号正确转义,这并不简单。我甚至不确定这是否有一个标准化,但这是非常常见的。编写CSV比这要复杂一些。如果要在CSV文件中表示的数据包含逗号或新行,则需要用引号将数据括起来。如果新加引号的数据中有引号,则需要使用双引号转义引号。您当然可以自己编写该逻辑,但如果有一个库可以为您编写,那就太好了。标准化是RFC4180。我一直想知道为什么它在Microsoft.VisualBasic程序集中。。。微软认为C#开发者没有使用CSV吗?@Thomas:特别是因为很多C#开发者一想到在他们的项目中包含一个可视化的基本组件就畏缩了。是的,这里面有很多不错的“好东西”。我认为这更多是因为VB有一些最初在框架中没有真正考虑的语言结构,但是如果不实现它们,它们将永远无法让VB6用户理解它们。设备和应用程序服务名称空间有各种有用的东西。@Roboto,任何在项目中畏缩于引用Microsoft.VisualBasic的C#开发人员,都是一个无知的语言势利小人。更糟糕的是,他们根本不懂.NET。另一个VB程序集宝石是CopyDirectory:我一直想知道为什么它在Microsoft.VisualBasic程序集中。。。微软认为C#开发者没有使用CSV吗?@Thomas:特别是因为很多C#开发者一想到在他们的项目中包含一个可视化的基本组件就畏缩了。是的,这里面有很多不错的“好东西”。我认为这更多是因为VB有一些最初在框架中没有真正考虑的语言结构,但是如果不实现它们,它们将永远无法让VB6用户理解它们。设备和应用程序服务名称空间有各种有用的东西。@Roboto,任何在项目中畏缩于引用Microsoft.VisualBasic的C#开发人员,都是一个无知的语言势利小人。更糟糕的是,他们根本不懂.NET。另一个VB程序集的宝石是CopyDirectory:我们也使用FileHelper。我发现FileHelper配置起来很麻烦。FastCsvReader更易于使用。+1表示FastCsvReader。出色的表现。但它主要是一个阅读器/解析器。不是编写器。我们也使用FileHelper。我发现FileHelper配置起来很麻烦。FastCsvReader是一个非常棒的人