【发布时间】:2016-04-15 18:44:54
【问题描述】:
如果此问题重复,我们深表歉意。
我正在尝试创建一个包含标题、名称和评论列的 CSV 文件。 CSV 的每一行都有从数据库中读取到相关变量中的每一列的值,这些变量以逗号分隔,然后添加到变量“换行符”,然后将其附加到 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);
最初我采用上述方法,但很快遇到了问题,如果从数据库中读取的任何字段中包含逗号,则该字段将在中间拆分,例如如果 cmets = "Comment, gos, here" 将分布在输出 CSV 中的 3 列而不是 1 列。
为了尝试解决这个问题,我更改了我的代码,以便所有字段都用双引号括起来,这意味着字段中的逗号将不再拆分 CSV,如下所示:
var newline = "\"" + title + "\",\"" + name + "\",\"" + comments + "\""
现在,有了这个,我遇到了一个问题,如果从数据库中读取的任何值包含双引号,这会搞砸一切,因为数据库中的双引号显示为 \" 当字段被转换成一个字符串,这是我已经用来将每个字段的开头和结尾用双引号引起来的,以防止逗号拆分包含逗号的字段。
【问题讨论】:
标签: c# csv formatting string-formatting