我使用以下代码创建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文件)。请建议,谢谢。
答案 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();
%>