如何将JSP页面的一部分导出到Excel工作表

时间:2013-03-06 09:33:07

标签: java javascript excel jsp

我有一个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文件感兴趣。关于如何实现这一目标的任何想法?

1 个答案:

答案 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块中的标题或其他任何内容只有在不导出为ex​​cel时才会被渲染。

但实际上,我建议使用Apache POI Excel或Andy Khan的JExcel API

构建一个实际的Excel文档

(建议从BalusC answer on the subject被盗。任何错误或错误的代码都是我的。)