6 个答案:
答案 0 :(得分:44)
这对我有用
CSVWriter writer =
new CSVWriter(new FileWriter(csv), ',', CSVWriter.NO_QUOTE_CHARACTER);
答案 1 :(得分:12)
您应该澄清“不受欢迎的”引号的含义。
我不希望它引用所有内容,只引用包含的字段
嵌入式逗号,引号和换行符(引用一切都是不必要的
使我的文件更大),或
我不想引用任何内容,并且我了解如果CSV包含嵌入的逗号,引号和换行符,我的CSV将无效
醇>
如果这是第一个选项,那么opencsv不支持这个 - 它要么引用一切,要么什么都不引用。如果您想要一个仅在必要时引用的开源CSV库(如果需要,可以Super CSV),请查看quote everything too。
如果这是第二个选项,那么请使用Sheldon的答案,但请注意,如果CSV包含嵌入的逗号,引号和换行符,则CSV将无效。
例如,如果我正在阅读您的CSV文件,我怎么知道以下实际上只是一个包含2个字段的记录?
P Sherman, 42 Wallaby Way,
Sydney, AUSTRALIA
如果引用得当,那就很明显了,即
P Sherman, "42 Wallaby Way,
Sydney, AUSTRALIA"
仅供参考,以下是与RFC4180引用相关的规则(CSV的MIME类型定义)。
5每个字段可能包含也可能不包含在双引号中(但是
某些程序(如Microsoft Excel)不使用双引号
在所有)。如果字段没有用双引号括起来,那么
双引号可能不会出现在字段内。例如:
"aaa","bbb","ccc" CRLF
zzz,yyy,xxx
6包含换行符(CRLF),双引号和逗号的字段
应该用双引号括起来。例如:
"aaa","b CRLF
bb","cc