我正在使用数据表来存储数据。
我将数据从数据表导出到CSV 文件。
有时可能值包含逗号(“,”),因此值 **未正确导出。
例如,
考虑值为“ 9,11,32 ”。我必须这样出口。
但是现在 第一列9 ,然后下一栏11 就像那样。
我想要在CSV 文件的同一列中显示9,11,32作为excel表格打开。
答案 0 :(得分:18)
只需将数据放入反斜杠中:“\”“+ yourdata +”\“”。看一下下面的例子:
StringWriter csv = new StringWriter();
// Generate header of the CSV file
csv.WriteLine(string.Format("{0},{1}", "Header 1", "Header 2"));
// Generate content of the CSV file
foreach (var item in YourListData)
{
csv.WriteLine(string.Format("{0},{1}", item.Data1, "\"" + item.Data2 + "\""));
}
return File(new System.Text.UTF8Encoding().GetBytes(csv.ToString()), "application/csv", string.Format("{0}{1}", "YourFileName", ".csv"));
在示例中:您的data2可能包含逗号“,”
答案 1 :(得分:12)
embedded commas
字段必须用双引号字符分隔。
字段:
abc, xyz
pqr
csv版本:
"abc, xyz" , pqr
包含double quote
个字符的字段必须用双引号括起来,并且嵌入的双引号必须用一对连续的双引号表示。
字段:强>
Welcome to "My World"
csv版本:
"Welcome to ""My World"""
答案 2 :(得分:6)
如果数据中有逗号,则需要输入csv http://tools.ietf.org/html/rfc4180表示使用qotations as => “123,56”,“狗,猫和青蛙”
答案 3 :(得分:2)
StringBuilder sb = new StringBuilder();
foreach (DataColumn col in dt.Columns)
{
if (col.ColumnName.Contains(","))
{
sb.Append(String.Format("\"{0}\",", col.ColumnName));
}
else
{
sb.Append(String.Format("{0},", col.ColumnName));
}
}
答案 4 :(得分:1)
在没有空格的双引号之间写下逗号分隔值,以便为comaa分隔值创建带有单列的csv。
实施例。我有两列代码& 说明值 Code01 &的 VAL1,VAL2,VAL3 即可。要在记事本中创建带有给定数据的csv,请使用csv扩展名保存。
Code,Description
Code01,"Val1,Val2,Val3"
答案 5 :(得分:0)
将值放在双引号中。 string ValueToEscape =" a,b&#34 ;;
<强>&#34; \&#34;&#34; + ValueToEscape +&#34; \&#34;&#34;
CSV输出= a,b