假设这就是你的jsp页面:

我们会添加一个“导出到excel”的超链接,它会把页面内容导出到excel文件中。那么这个页面会变成这个样子

在此,强调一下搜索时关键词的重要性,这样一下子可以定位到文章,否则处于盲人摸象,毫无目的尴尬境地。本篇就是通过export jsp to excel找到的。

原文地址: How to Export Web Page to Excel (in JSP)?

本篇教程我们会看到如何把JSP页面导出到Excel中,会在已有的JSP页面中增加导出excel的功能。

许多时候对于用户来说,可以在excel中看到页面内容是很方便的。公共的方案会被导出成包含一些报告、数字等信息的表格。通过导出数据导出到excel中,最终用户也可以使用excel来做各种的分析,这一点对于你的java基本程序来实现,是有困难的。

这是对应的jsp源码(导出excel功能还没有加)。一个包含简单数据表格的jsp页面。

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Export to Excel - Demo</title>
</head>
<body>
<table align="center" border="2">
<thead>
<tr bgcolor="lightgreen">
<th>Sr. No.</th>
<th>Text Data</th>
<th>Number Data</th>
</tr>
</thead>
<tbody>
<%
for (int i = 0; i < 10; i++) {
%>
<tr bgcolor="lightblue">
<td align="center"><%=i%></td>
<td align="center">This is text data <%=i%></td>
<td align="center"><%=i * i%></td>
</tr>
<%
}
%>
</tbody>
</table>
</body>
</html>

我们会添加一个“导出到excel”的超链接,它会把页面内容导出到excel文件中。那么这个页面会变成上图。

下面是新版本的jsp源码。这个版本增加了“导出到excel”超链接,而且增加了相应的功能:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Export to Excel - Demo</title>
</head>
<body>
<%
String exportToExcel = request.getParameter("exportToExcel");
if (exportToExcel != null
&& exportToExcel.toString().equalsIgnoreCase("YES")) {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename="
+ "excel.xls"); }
%>
<table align="left" border="2">
<thead>
<tr bgcolor="lightgreen">
<th>Sr. No.</th>
<th>Text Data</th>
<th>Number Data</th>
</tr>
</thead>
<tbody>
<%
for (int i = 0; i < 10; i++) {
%>
<tr bgcolor="lightblue">
<td align="center"><%=i + 1%></td>
<td align="center">This is text data <%=i%></td>
<td align="center"><%=i * i%></td>
</tr>
<%
}
%>
</tbody>
</table>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> <%
if (exportToExcel == null) {
%>
<a href="excel.jsp?exportToExcel=YES">Export to Excel</a>
<%
}
%>
</body>
</html>

导出网页到excel代码解释:

1) 在这个版本的jsp页面中,当你点击“导出到excel”超链接的时候,请求会发送到相同的页面(excel.jsp),但是伴随url参数是 exportToExcel=YES.

<a href="excel.jsp?exportToExcel=YES">Export to Excel</a>

2) JSP页面一开始会检查参数的正确性。如果这个参数值是YES的话,我们就会看到响应报文中的内容类型,它标识了excel的文件名,并且会在用户的电脑上打开。

String exportToExcel = request.getParameter("exportToExcel");
if (exportToExcel != null
&& exportToExcel.toString().equalsIgnoreCase("YES")) {
response.setContentType("application/vnd.ms-excel");
response.setHeader("Content-Disposition", "inline; filename="
+ "excel.xls"); }

3) 当你点击“导出到excel”超链接的时候,所有页面的内容会被导出excel中。但是,我们可能不想让“导出到excel”的超链接出现在excel中。为了阻止它的出现,我们增加了一个判断条件,判断exportToExcel参数是否出现。如果出现,就意味着内容会被导出到excel中,而且不包括超链接。反之,就意味着我们只是想浏览器显示网页,那么超链接会出现在页面上。

<%
if (exportToExcel == null) {
%>
<a href="excel.jsp?exportToExcel=YES">Export to Excel</a>
<%
}
%>

导出页面到excel的显示

但你点击超链接,会弹出一个对话框,问你是否打开或保存文件。点击打开,你会看到下面的内容:

正如你所看得,导出的文件也会保存你在页面上的格式设置。

在下一篇教程中,我们会看到如何导出页面到word文件中

你可以下载本次教程中代码解释部分的eclipse工程文件。

JavaExcelExport.zip (5KB)

[完]

=============================================

注意:

如果没有设置:response.setHeader("Content-Disposition", "attachment; filename=" + filename+".xls"); 
则默认为当前页面.xls。 
比如testexcel.jsp--->则生成testexcel.xls表格 

扩展阅读:

如何将jsp页面的table报表转换到excel报表导出的更多相关文章

  1. 把页面的Table直接输出到Excel文件中

    有个需求是统计的时候,为生成的html表格提供导出功能,但是这样导出Excel不会显示自身的表格 影响美观,但是excel会显示html的css样式,这里可以通过处理行对象的方式进行导出,但是处理起纵 ...

  2. 今天做一个项目的时候,要在一个编辑的jsp页面的textarea标签设置value属性,结果发现他没有value属性,但是是编辑页面又必须要回显要修改的内容,所以在参考了w3cschool之后很轻松的解决了这个问题。

    今天做一个项目的时候,要在一个编辑的jsp页面的textarea标签设置value属性,结果发现他没有value属性,但是是编辑页面又必须要回显要修改的内容,所以在参考了w3cschool之后很轻松的 ...

  3. javascript 如何访问 action或者controller 传给 jsp 页面的值

    <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding= ...

  4. jsp页面的html代码显示不出来,提示Uncaught SyntaxError: Unexpected token <

    jsp页面的html代码显示不出来,提示Uncaught SyntaxError: Unexpected token < <input type="hidden" na ...

  5. 将RDL报表转换成RDLC报表的函数

    原文:将RDL报表转换成RDLC报表的函数 近日研究RDLC报表,发现其不能与RDL报表兼容,尤其是将RDL报表转换成RDLC报表.网上的资料贴出的的转换方式复杂且不切实际,遂决定深入研究.经研究发现 ...

  6. jsp页面的el表达式取数据

    在jsp页面去Id时候要照上面的方式取,不能照下面的方式取:

  7. 关于Jsp页面的jstl标签的级联属性的异常。

    使用SpringMVC框架时,当我做表单回显时. 情景描述.Employee 类有一个Department类的属性.这两个类存在多对一关联关系. 下面是Employee类的属性的定义. public ...

  8. 将jsp页面的<s:iterator>的数据返回到action

    jsp: <form method="post" id="createTable"> <table width="98%" ...

  9. JSP页面的Page指令指定编码和Meta标签编码

    JSP代码如下: <%@ page language="java" contentType="text/html; charset=UTF-8" page ...

随机推荐

  1. JQuery------.load()从服务器获取数据并加载到某个类的方法

    注意:需要在../Content/asf.txt路径下加入文件 html <button class="Btn">按钮</button> js 参数意义: ...

  2. socketserver模块写的一个简单ftp程序

    一坨需求... 用户加密认证 允许同时多用户登录 每个用户有自己的家目录 ,且只能访问自己的家目录 对用户进行磁盘配额,每个用户的可用空间不同 允许用户在ftp server上随意切换目录 (cd) ...

  3. Hibernate学习总结

    首先声明这是个坑爹的框架 属于ssh经典框架中的持久层框架,说白了就是管理数据库的. 下载地址:http://hibernate.org/orm/ 这里写了版本5.2,下载下来的基本不怎么会用,因为文 ...

  4. 关于Linux的内存(free -m)

    查看Linux服务器下的内存使用情况,可以使用命令free -m.注意此命令只在Linux下有效,在FreeBSD中没有此命令.命令如下所示: used:已经使用的内存数 free:空闲的内存数 sh ...

  5. Java Web 开发利用Struts2+Spring+mybatis写一个用户登录界面以及简单的数据交互

    框架的东西太复杂也难以讲通,直接上代码: 一.首先得配置环境 和导入必要的jar包 有一些重要的如下: Filter文件夹下的SafetyFilter.java   model文件夹下的 Global ...

  6. PL/SQL 中查询CLOB字段内容

    oracle中的clob类型字段不能直接显示出来,需要借助Oracle系统dbms_lob中substr方法处理,如select dbms_lob.substr(clobField) from tab ...

  7. input的onkeyup效果 超级简短代码

    效果代码 title="请输入正确的十六位数字" onkeyup="javascript: return this.value = this.value.toUpperC ...

  8. MVC实现动态二级域名

    前段时间,一个朋友问我ASP.NET MVC下实现动态二级域名的问题.跟他聊了一些解决方案,这里也总结一下,以供参考. 相信大家都发现类似58同城这样的网站,成都的网址是cd.58.com 上海的是s ...

  9. MYSQL双主故障解决实例。

    根据报错得知,获取到的主库文件格式错误. 一.锁住主从正常的库 Mysql> flush tables with read lock; 锁表 unlock tables; 解锁 SHOW MAS ...

  10. 遍历JObject

    JObject jo = JObject.Parse(jsonStr); IEnumerable<JProperty> properties = jo.Properties(); fore ...