将数据写入csv

时间:2014-09-08 15:27:48

标签: jsp csv export-to-csv

我使用以下代码创建csv文件并将数据写入csv文件。

创建CSV文件并将数据写入CSV文件的代码:

<%@page contentType="application/vnd.ms-excel" pageEncoding="UTF-8"%>
<%

response.setHeader("Content-type","text/csv");
response.setHeader("Content-disposition","inline; filename="+ "myTest.csv");
String outputData = (String)request.getParameter("outputData");
%>

<%=outputData%>

问题是csv文件中的前4行是空白的,数据是从第5行写入的。 如何从第一行的csv文件中写入数据,或者如何删除csv文件的前四行空行。我没有使用任何特殊的API来创建csv / excel文件,因为我的要求很小(只是将数据写入csv / excel文件)。请建议,谢谢。

2 个答案:

答案 0 :(得分:2)

  • 您只能设置一次内容类型;也就是说,最后一个将是唯一要发送的。

  • 您不应该使用<%@page...%>指令,而是使用Java代码设置Content-Encoding,以避免关闭/打开<% %>导致空格的可能性(从{{要打印1}}和%>)。

  • 最后打印相同,请勿关闭/打开<%但请使用out.print

  • 此外,对于设置内容类型,您可以专门为此使用该方法而不是response.setHeader:

<% %>

答案 1 :(得分:0)

当服务器将JSP页面转换为servlet时,它会隐式添加空行(\ n)。 添加out.clear()befor写清除对象。并且不要忘记最后关闭。 例如:

<%
    response.setHeader("Content-Encoding", "UTF-8");
    response.setContentType("text/csv; charset=UTF-8");
    response.setHeader("Content-Disposition","inline; filename=myTest.csv");
    String outputData = (String)request.getParameter("outputData");
    out.clear();
    out.print(outputData);
    out.close();
  %>