<foreach>
<c:set var="downloadData" value="${downloadData }${quote }${usage.day}${quote },${quote }${m_method }${quote },${usage.totalHoursUsage },${usage.grpInfo.computeBladeCnt },${usage.averageUsage }${wrap}">
</c:set>
</foreach>
<c:url value="/CsvDownload.do" var="downloadUrl"></c:url>
<form action="${downloadUrl }" method="post" id="downloadForm">
<input name="downloadData" id="downloadData" type="hidden" value="Ptn ID,Timestamp,Num of cups in ptn,Num of active cups in ptn,Percent utilization" />
<input type="submit" value="Download Table">
</form>
<action path="/CsvDownload" forward="/pages/download.jsp" />
<%
String pageContent = request.getParameter("downloadData");
String filename = "myFile.csv" ;
response.setContentType("text/csv; charset=utf-8");
response.setHeader("Content-Disposition", "attachment; filename=\"" + filename + "\"");
out.write(pageContent);
out.flush();
%>
[b]
注:
正常CSV解析是按,来做间隔的,但是当传输数据中含有一些特殊字符,例如空格或是本身含有, 则这时需要在字段最外加上一对[color=red]双引号[/color]来告诉解析器这个特殊字段作为一个字段来解析。[/b]
CSV解析:
其实CSV的规则是有点麻烦, 可以归类为CSV模式和非CSV模式,
CSV模式, 为字符串里含有 comma 或 double quotation 这样的字符串, excel导出时会添加"到字符串的开头和结尾, 如果, 字符串里身身含有", 则在"前再加一个", 即""
详解见:[url]http://mocha-c-163-com.iteye.com/blog/403070[/url]