如果此问题重复,请道歉。CSV解析包含双引号和逗号的字符串
我试图创建一个CSV文件,例如标题,名称和评论栏。 CSV的每一行都将从数据库中读取每列的值写入相关变量,然后将这些变量(以逗号分隔)添加到变量“newline”,然后将其附加到csv,如下所示:
string title = reader[0]
string name = reader[1]
string comments = reader[2]
var csv = new StringBuilder();
var headerLine = "Title,Name,Comments"
csv.AppendLine(headerLine);
var newline = title + "," + name + "," + comments;
csv.AppendLine(newline);
本来我采取了上述方法,但很快遇到了问题,如果从数据库中读取的任何字段中有逗号,那么该字段将在中间被分割,例如如果评论=“评论,去,这里”将分布在CSV列中的3列而不是1.
为了尝试和克服这个问题,我改变了我的代码,以便所有字段都用双引号括起来,意思是逗号字段内将不再分裂CSV,如下所示:
var newline = "\"" + title + "\",\"" + name + "\",\"" + comments + "\""
现在,这地方,我得到了一个问题,如果任何值从数据库中读取包含双引号,这会混淆一切,因为数据库中的双引号显示为“当字段转换为字符串时,这就是我已经用来将每个字段的开始和结尾用双引号括起来以防止逗号分割包含的字段逗号。
接受这个作为答案,因为这正是我一直在寻找它最简单的形式 - 尽管梅德也做提供一个很好的解我希望我能接受两个。 – axel