繁体   English   中英

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

[英]comma(,) separating string while exporting to XL in CSV format c#

我是 C# 的初学者,我正在将一些数据以 CSV 格式导出到 XL 表。 我的数据包含一个全名列,其中数据类似于 (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 的输出是:

约翰,德洛丽丝·萨顿""

但我希望它是:

约翰,德洛丽丝“萨顿”

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

"John, Delores ""Sutton"""

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

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

然后做你的格式来用引号包围文本。

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

精明?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM