Use the Microsoft.VisualBasic.FileIO.TextFieldParser
班级。这将处理解析分隔文件,TextReader
or Stream
其中一些字段用引号引起来,而另一些则没有。
例如:
using Microsoft.VisualBasic.FileIO;
string csv = "2,1016,7/31/2008 14:22,Geoff Dalgas,6/5/2011 22:21,http://stackoverflow.com,\"Corvallis, OR\",7679,351,81,b437f461b3fd27387c5d8ab47a293d35,34";
TextFieldParser parser = new TextFieldParser(new StringReader(csv));
// You can also read from a file
// TextFieldParser parser = new TextFieldParser("mycsvfile.csv");
parser.HasFieldsEnclosedInQuotes = true;
parser.SetDelimiters(",");
string[] fields;
while (!parser.EndOfData)
{
fields = parser.ReadFields();
foreach (string field in fields)
{
Console.WriteLine(field);
}
}
parser.Close();
这应该会产生以下输出:
2
1016
7/31/2008 14:22
Geoff Dalgas
6/5/2011 22:21
http://stackoverflow.com
Corvallis, OR
7679
351
81
b437f461b3fd27387c5d8ab47a293d35
34
See Microsoft.VisualBasic.FileIO.TextFieldParser http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.fileio.textfieldparser.aspx了解更多信息。
您需要添加对Microsoft.VisualBasic
在“添加引用 .NET”选项卡中。