我有一个JSP页面,我在某些表中有一些数据。我希望通过单击该页面上的链接将JSP中的所有表导出到excel文件。我目前使用以下代码来实现:
<a href="Result.jsp?exportToExcel=YES">Export to Excel</a>
String exportToExcel = request.getParameter("exportToExcel");
if (exportToExcel != null
&& exportToExcel.toString().equalsIgnoreCase("YES")) {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename="
+ "report.xls");
}
}
我面临的问题是,此代码将JSP上的所有数据(包括geaders,footers等)导出到.xls文件。但我不希望这种情况发生。我只对将JSP中的表放入.xls文件感兴趣。关于如何实现这一目标的任何想法?
答案 0 :(得分:0)
如果没有来自jsp的代码,就无法知道代码的结构。但是,有几种方法可以做到这一点。其中一个最简单的方法是将if语句放在jsp中,如下所示: 首先,确保包含tld。
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
接下来,在页眉和页脚以及其他任何内容周围插入if语句。
<c:if test="${empty requestScope.exportToExcel || !requestScope.exportToExcel.contains('YES') }">
<%@ include file="header.jsp" %>
</c:if>
这样,if块中的标题或其他任何内容只有在不导出为excel时才会被渲染。
但实际上,我建议使用Apache POI Excel或Andy Khan的JExcel API
构建一个实际的Excel文档(建议从BalusC answer on the subject被盗。任何错误或错误的代码都是我的。)