逗号(,)以CSV格式导出到EXCEL时分隔字符串c#

时间:2012-11-13 20:21:01

标签: c# export-to-csv string.format

我是C#的初学者,我正在以CSV格式将一些数据导出到XL表格。我的数据包含一个fullname列,其中数据类似于(John,Delores“Sutton”)。当我将它导出到XL时,它将数据分成两列(或制表符),如Tab1:John和Tab2:Delores“Sutton”,因为逗号(,)。我想要

如果我使用以下代码

string F1 = base.GetColumnText(column, columnValue); //ex: John, Delores \"Sutton\""
string F2 = string.Format("\"{0}\"", F1); //ex: "\"John, Delores\"Sutton\"\""
streamWriter.Write(F2); //ex output in XL is: John, Delores Sutton""

XL中的输出是:

  

John,Delores Sutton“”

但我想要它:

  

John,Delores“Sutton”

2 个答案:

答案 0 :(得分:1)

您需要使用双引号来表示CSV中的双引号,所有内容都必须用双引号括起来,因此文本中的输出将如下所示:

"John, Delores ""Sutton"""

因此,您需要在文本上进行查找和替换,以使双引号加倍...

F1 = F1.Replace("\"", "\"\"");

然后将您的格式用引号括起来。

var F2 = string.Format("\"{0}\""), F1);

精明?

答案 1 :(得分:1)

由于逗号用于分隔字段,因此带逗号的值将被解释为两个字段。这些字段必须用引号括起来。因此,包含引号的字段也必须用引号括起来,并且字段中的每个引号必须加倍。

创建CSV文件有很多规则。我写了一个非常完整的类来读取和写入CSV文件,并在我的文章Reading and Writing CSV Files in C#中展示代码。你可能想检查一下。