将逗号分隔的数字写入一个单元格

时间:2018-02-26 20:04:41

标签: java excel csv

我使用Java代码生成CSV文件,标题字段为UserName,AccountNumbers。现在,对于AccountNumber标题字段,我需要在onc单元格中以逗号分隔显示所有帐号。

离。 abc, 10001,10002,10003

现在,当我在Excel中打开生成的CSV文件时,帐号无法正常显示,并且该单元格值被视为数字,默认情况下,在Excel中打开时会应用数字格式。

我申请了以下解决方案:

1)用双引号括起逗号分隔的列表         即" 10001,10002,10003" - 没用 2)将逗号分隔列表包装在" ="" list"""         即" ="" 10001,10002,10003""" - 这个包装的问题在于,对于某些列表,它工作正常,但对于某些人来说,我得到了#34; =出现在列表的开头。 即某些列表已被视为文本格式(不确定原因)

HttpServletResponse response = this.getPortalPageContext().getResponse();
response.setContentType("text/csv");
response.setHeader("Content-Disposition", "attachment;filename=user_search_export.csv");
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "cache");
response.setHeader("Cache-Control", "must-revalidate");
Writer out = response.getWriter();
StringBuffer tmp = new StringBuffer();
tmp.append("UserName");
tmp.append("Accounts");
out.write(tmp.toString());
out.write("\r\n");

StringBuffer tmp = new StringBuffer();
String accountNo = "10001,10002,10003";
tmp.append("abc");
tmp.append("\"=\"\"" + accountNo + "\"\"\"");
out.write(tmp.toString());
out.write("\r\n");

由于

2 个答案:

答案 0 :(得分:0)

为什么您不使用其他分隔符作为单元格分隔符,例如&#39 ;;'。在excel的导入向导中,您可以选择此分隔符作为单元格分隔符。当excel使用最后一列的货币格式化程序时,您可以强制此列的文本类型。

答案 1 :(得分:0)

将文本限定符放在以逗号分隔的字符串周围,然后导入使文件正常工作。

如果正在拆分该值,请确保在第一个逗号之后没有 space (如您的示例所示)。

我将添加一些例子

csv文件的内容

abc,"10001,10002,10003"

使用旧版向导导入

enter image description here

第2步

enter image description here

第3步

enter image description here

工作表上的

enter image description here