概述
java - 我应该如何在CSV文件中转义逗号和语音标记,以便它们在Excel中工作?
我正在生成一个CSV文件(用逗号而不是制表符分隔)。 我的用户很可能通过双击在Excel中打开CSV文件。 我的数据可能包含逗号和语音标记,因此我将按以下方式转义。
Reference, Title, Description
1, "My little title", "My description, which may contain ""speech marks"" and commas."
2, "My other little title", "My other description, which may also contain ""speech marks"" and commas."
据我所知,这一直都是这样做的。 这是我的boggle:当我在Excel 2010中打开此文件时,我的转义不受尊重。 语音标记显示在工作表上,逗号导致新列。
5个解决方案
199 votes
我们最终找到了答案。
如果列值前面没有空格,Excel将仅考虑转义逗号和语音标记。 因此生成没有这样的空格的文件......
Reference,Title,Description
1,"My little title","My description, which may contain ""speech marks"" and commas."
2,"My other little title","My other description, which may also contain ""speech marks"" and commas."
......修复了问题。 希望这有助于某人!
centralscru answered 2019-08-01T08:44:50Z
53 votes
如果您认为它是随机的,则以下是规则。 可以基于这些规则创建效用函数。
如果值包含逗号,换行符或双引号,则应以双引号括起来返回String值。
值中的任何双引号字符都应使用另一个双引号进行转义。
如果该值不包含逗号,换行符或双引号,则表示该值字符串值应保持不变。
Yashu answered 2019-08-01T08:45:35Z
2 votes
根据Yashu的指示,我编写了以下函数(它是PL / SQL代码,但它应该很容易适应任何其他语言)。
FUNCTION field(str IN VARCHAR2) RETURN VARCHAR2 IS
C_NEWLINE CONSTANT CHAR(1) := '
'; -- newline is intentional
v_aux VARCHAR2(32000);
v_has_double_quotes BOOLEAN;
v_has_comma BOOLEAN;
v_has_newline BOOLEAN;
BEGIN
v_has_double_quotes := instr(str, '"') > 0;
v_has_comma := instr(str,',') > 0;
v_has_newline := instr(str, C_NEWLINE) > 0;
IF v_has_double_quotes OR v_has_comma OR v_has_newline THEN
IF v_has_double_quotes THEN
v_aux := replace(str,'"','""');
ELSE
v_aux := str;
END IF;
return '"'||v_aux||'"';
ELSE
return str;
END IF;
END;
aaguilera answered 2019-08-01T08:45:59Z
0 votes
单引号工作正常,即使没有转义双引号,至少在Excel 2016中:
'text with spaces, and a comma','more text with spaces','spaces and "quoted text" and more spaces','nospaces','NOSPACES1234'
Excel将把它放在5列中(如果在“Text to columns”向导中选择单引号作为“Text qualifier”)
golimar answered 2019-08-01T08:46:30Z
-3 votes
即使在双引号后,我也有这个问题几天了。
用逗号替换了Pipe Delimiter,然后工作正常。
Ramkumar Navaneethakrishnan answered 2019-08-01T08:47:00Z
最后
以上就是传统大米为你收集整理的JAVA导入excel中文逗号消失,java - 我应该如何在CSV文件中转义逗号和语音标记,以便它们在Excel中工作?...的全部内容,希望文章能够帮你解决JAVA导入excel中文逗号消失,java - 我应该如何在CSV文件中转义逗号和语音标记,以便它们在Excel中工作?...所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复