C# 如何读取具有';的csv文件';在数据内部
我有一些csv数据:C# 如何读取具有';的csv文件';在数据内部,c#,csv,C#,Csv,我有一些csv数据: "data1", "data2", "data2_1", "data3" 我正在使用csvHelper读取数据 当我读取数据并使用分隔符拆分它时,“我得到4条记录 "data1", "data2", "data2_1", "data3" 但我想要3张唱片,因为我有3列 "data1", "data2, data2_1", "data3" 下面是我正在尝试的代码 var config = new CsvConfiguration() { HasHeaderRe
"data1", "data2", "data2_1", "data3"
我正在使用csvHelper
读取数据
当我读取数据并使用分隔符拆分它时,“我得到4条记录
"data1",
"data2",
"data2_1",
"data3"
但我想要3张唱片,因为我有3列
"data1",
"data2, data2_1",
"data3"
下面是我正在尝试的代码
var config = new CsvConfiguration() { HasHeaderRecord = false };
var stream = File.OpenRead(FilePath);
using (var csvReader = new CsvReader(new StreamReader(stream, Encoding.UTF8), config))
{
while (csvReader.Read()) {
var parser = csvReader.Parser;
var rowRecors = parser.RawRecord;
var splitedData = rowRecors.Split(',');
}
不要手动拆分,而是使用lib函数
// By header name
var field = csv["HeaderName"];
// Gets field by position returning string
var field = csv.GetField( 0 );
// Gets field by position returning int
var field = csv.GetField<int>( 0 );
// Gets field by header name returning bool
var field = csv.GetField<bool>( "IsTrue" );
// Gets field by header name returning object
var field = csv.GetField( typeof( bool ), "IsTrue" );
//按标题名
变量字段=csv[“HeaderName”];
//按返回字符串的位置获取字段
var字段=csv.GetField(0);
//按返回int的位置获取字段
var字段=csv.GetField(0);
//按返回bool的标头名称获取字段
var field=csv.GetField(“IsTrue”);
//按返回对象的标头名称获取字段
var field=csv.GetField(typeof(bool),“IsTrue”);
您似乎正在使用此库: 您的文件数据被引用意味着每个字段都用双引号括起来,因为某些字段可能包含字段分隔符(逗号)。在这种情况下,您应该通知库用于引用字段的字符是什么,这样当字段分隔符位于引号对内时,它就可以忽略字段分隔符的存在 此库提供您已经初始化的配置类。
您只需要将其添加到构造函数中
var config = new CsvConfiguration()
{
HasHeaderRecord = false,
Quote = '"'
};
请参见上的属性列表,我将在
CvsReader
及其类似工具上寻找一些方法来进行拆分,这就是它的用途。如果您自己进行拆分,为什么还要麻烦使用工具?您能告诉我们您正在使用的确切csv帮助程序库(链接)吗?CsvReader是一个非常通用的副本,我在CsvReader中没有发现任何分裂。如果我从csvReadrer那里得到,对我来说没问题