0
我已经尝试了所有我可以在网上找到的东西,并且在这个特定的网站上,这些选项都不起作用。我正在浏览一系列对象并创建一个CSV文件。我想打破每个对象入口,但目前还没有运气。PrintWriter写入CSV - 新行不起作用?
这是我目前有:
String value = FacesContext.getCurrentInstance().
getExternalContext().getRequestParameterMap().get("cityId");
String seperator = System.getProperty("line.separator");
try {
PortletResponse response1 = (PortletResponse)FacesContext.getCurrentInstance().getExternalContext().getResponse();
HttpServletResponse resp = PortalUtil.getHttpServletResponse(response1);
resp.setHeader("Content-Type", "text/csv");
resp.setHeader("Content-disposition", "attachment;filename=myFile.csv");
List<Person> people = ppApi.getPeopleByCityId(Long.parseLong(value));
PrintWriter out = resp.getWriter();
for(Person pp : people) {
out.print(pp.getFirstName() + ",");
out.print(pp.getLastName() + ",");
out.print(pp.getEmail() + ",");
out.print(pp.getPhone() + "%%n");
out.print("\r\n");
out.print("\n\r");
out.print("\n");
out.print("\r");
out.print("\\r\\n");
out.print("\\n");
out.print("\\n\\r");
out.print(seperator);
out.println('\n');
out.println("%n");
out.println("%%n");
}
//Close the output stream
out.flush();
out.close();
}
catch(Exception e) {
e.printStackTrace();
}
所以没有这些东西都在工作。我的输出看起来是这样的:
杰夫·史密斯,JSMITH @ email.com,555-123-1234 里克·史密斯,rsmith @ email.com,123-123-1233
应该是这样的:
杰夫·史密斯,JSMITH @ email.com,555-123-1234
里克·史密斯,rsmith @ email.com,123-123-1233
这是否与输出到HTML响应一起工作? – user2124871 2013-04-10 15:10:11
@ user2124871你想要的一切。主要优点是它会自动转义所有CSV的特殊符号并创建有效的csv文件。 – Andremoniy 2013-04-10 15:11:21
优秀 - 让我看看这个。 – user2124871 2013-04-10 15:12:54