CSV解析器在一个例程/函数中?
我知道有几个代码库可以根据标准解析CSV文件,但是,由于各种原因,我需要一个简单的例程(不是整个库)将CSV解析为DataTable或数组。 这样的动物是存在还是灭绝? (最好是C#,但我也可以翻译vb.net)
参考Microsoft.VisualBasic.FileIO
,您可以使用TextFieldParser
using (var parser = new TextFieldParser(@"c:\data.csv") { TextFieldType = FieldType.Delimited, Delimiters = new string[] { "," } }) { while (!parser.EndOfData) { string[] fields; fields = parser.ReadFields(); //go go go! } }
编写循环遍历每一行的自己的方法,并使用逗号作为分隔符使用split方法。
如果你想使用linq解析csv,这是一个简单的例子:
http://www.fryan0911.com/2009/05/read-data-from-csv-using-linq.html
编写自己的CSV解析器并不容易。 你会遇到很多边缘情况。
阅读: http : //www.secretgeek.net/csv_trouble.asp
@splander的回答可能是你使用内置函数最接近的答案。
试试CsvHelper (我维护的库)。 它可以在NuGet上使用。 它非常轻巧。 如果您只想要一小段代码,您只需复制CsvParser.cs源并稍微修改它即可。 基本上有一个函数可以完成所有解析,只有100多行,包括注释。 如果你想要一个例程,这将是一个很好的抓住。
如果使用CsvHelper库,则可以轻松读入自定义类对象的集合。
var streamReader = // Create StreamReader to your CSV file. var csvReader = new CsvReader( streamReader ); var myObjects = csvReader.GetRecords();