答案 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。