时间:2011-01-06 17:47:01

标签: csv

14 个答案:

答案 0 :(得分:215)

答案 1 :(得分:31)

答案 2 :(得分:11)

如果你想说,你可以使用引号。像这样的东西

$name = "Joe Blow, CFA.";
$arr[] = "\"".$name."\"";

现在,您可以在名称变量中使用逗号。

答案 3 :(得分:9)

答案 4 :(得分:6)

除了其他答案中的要点之外:如果在Excel中使用引号,则需要注意的一点是空格的位置。如果您有一行代码如下:

print '%s, "%s", "%s", "%s"' % (value_1, value_2, value_3, value_4)

Excel会将初始引用视为文字引号,而不是使用它来转义逗号。您的代码需要更改为

print '%s,"%s","%s","%s"' % (value_1, value_2, value_3, value_4)

正是这种微妙之处把我带到了这里。

答案 5 :(得分:2)

我遇到了同样的问题并且引用,没有帮助。最后,我将,替换为+,完成处理,将输出保存到outfile中,并将+替换为,。这可能看起来很丑,但它对我有用。

答案 6 :(得分:1)

我发现Mac中的Numbers之类的某些应用程序如果前面有空格,则会忽略双引号。

a, "b,c"无效,而a,"b,c"有效。

答案 7 :(得分:1)

您可以使用模板文字(模板字符串)

例如-

`"${item}"`

答案 8 :(得分:0)

You can use the Text_Qualifier field in your Flat file connection manager to as ". This should wrap your data in quotes and only separate by commas which are outside the quotes.

答案 9 :(得分:0)

首先,如果项目值具有双引号字符("),则替换为2个双引号字符("")

item = item.ToString().Replace("""", """""")

最后,换行项值:

左下:使用双引号字符(")

ON RIGHT:使用双引号字符(")和逗号字符(,)

csv += """" & item.ToString() & ""","

答案 10 :(得分:0)

根据您的语言,可能有to_json方法可用。这将逃脱许多破坏CSV的事情。

答案 11 :(得分:0)

双引号对我不起作用,它对我有用\"。如果您想以双引号为例,可以设置\"\"

您可以构建公式,例如:

fprintf(strout, "\"=if(C3=1,\"\"\"\",B3)\"\n");

将写入csv:

  

= IF(C3 = 1,"",B3)

答案 12 :(得分:0)

您可以编码值,例如在PHP base64_encode($ str)/ base64_decode($ str)

IMO这比加倍报价等更简单

https://www.php.net/manual/en/function.base64-encode.php

编码值永远不会包含逗号,因此CSV中的每个逗号都是分隔符。

答案 13 :(得分:0)

这里可能不需要什么,但这是一个非常老的问题,答案可能会帮助其他人。我发现使用不同的分隔符导入Excel的有用技巧是在文本编辑器中打开文件并添加第一行,例如:

sep = |

其中|是您希望Excel使用的分隔符。 另外,您可以更改Windows中的默认分隔符,但有点麻烦:

控制面板>时钟和区域>区域>格式>其他>数字>列表分隔符[从逗号更改为您的首选替代项]。这意味着Excel还将默认使用选定的分隔符导出CSV。