利用Servlet导出Excel
来源:互联网 发布:135端口还有漏洞吗 编辑:程序博客网 时间:2024/05/17 07:11
-----因为Excel可以打开HTML文件,因此可以利用页面的Form表单把页面中的table内容提交给Servlet,然后后台把提交上来的table内容转换成文件流的形式,并以下载的形式转给客户端,由此完成导出Excel功能。
效果:
<!--[endif]-->
Java代码
package com.mr;
importjava.io.IOException;
importjava.io.PrintWriter;
importjavax.servlet.ServletException;
importjavax.servlet.ServletOutputStream;
importjavax.servlet.http.HttpServlet;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
/**
* 利用Servlet导出Excel
* @author CHUNBIN
*
*/
public classExportExcelServlet extends HttpServlet {
public void doGet(HttpServletRequestrequest, HttpServletResponse response)
throws ServletException,IOException {
doPost(request, response);
}
public void doPost(HttpServletRequestrequest, HttpServletResponse response)
throws ServletException,IOException {
request.setCharacterEncoding("UTF-8");//设置request的编码方式,防止中文乱码
String fileName ="导出数据";//设置导出的文件名称
StringBuffer sb = newStringBuffer(request.getParameter("tableInfo"));//将表格信息放入内存
String contentType ="application/vnd.ms-excel";//定义导出文件的格式的字符串
String recommendedName = newString(fileName.getBytes(),"iso_8859_1");//设置文件名称的编码格式
response.setContentType(contentType);//设置导出文件格式
response.setHeader("Content-Disposition","attachment; filename=" + recommendedName + "\"");//
response.resetBuffer();
//利用输出输入流导出文件
ServletOutputStream sos =response.getOutputStream();
sos.write(sb.toString().getBytes());
sos.flush();
sos.close();
}
}
Jsp代码
<%@ page language="java"contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!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=UTF-8">
<title>导出Excel</title>
<script type="text/javascript">
function test(){
document.getElementById("tableInfo").value=document.getElementById("table").innerHTML;
}
</script>
<style>
body{font-family:宋体;font-size:11pt}
</style>
</head>
<body>
<form action="<%=request.getContextPath()%>/servlet/ExportExcelServlet"method="post">
<span id="table">
<table bgcolor="#EEECF2" bordercolor="#A3B2CC" border="1" cellspacing="0">
<tr><th>学号</th><th>姓名</th><th>科目</th><th>分数</th></tr>
<tr><td>10001</td><td>赵二</td><td>高数</td><td>82</td></tr>
<tr><td>10002</td><td>张三</td><td>高数</td><td>94</td></tr>
<tr><td>10001</td><td>赵二</td><td>线数</td><td>77</td></tr>
<tr><td>10002</td><td>张三</td><td>线数</td><td>61</td></tr>
</table>
</span><br/>
<input type="submit"name="Excel"value="导出表格"onclick="test()"/>
<input type="hidden"id="tableInfo"name="tableInfo"value=""/>
</form>
</body>
</html>
- 利用Servlet导出Excel
- 利用Servlet导出Excel
- 利用Servlet导出Excel
- Servlet 利用Jxl导出Excel
- 利用servlet去动态的导出一个Excel表格
- Servlet导出Excel
- servlet导出excel表格
- 利用office导出Excel
- 利用npoi导出excel
- 利用npoi导出excel
- 利用POI导出excel
- 利用Poi导出Excel
- 利用poi导出excel
- 利用POI导出EXCEL
- 利用POI导出excel
- 利用CloseXML导出EXCEL
- 利用SXSSFWorkbook导出excel
- POI实现Servlet导出Excel
- hdu 2063
- 我可以忘记你
- hdu 2594 Simpsons’ Hidden Talents(数据结构:KMP)
- poj 1469
- 类似于支付宝手势页面 UILabel抖动效果
- 利用Servlet导出Excel
- 资深站长对云主机的评价
- 敏捷开发之产品级经验分享
- Sum It Up
- hdu 1068
- 栈的表示和实现
- Hive中小表与大表关联(join)的性能分析
- hdu 3335
- FastDFS安装、配置、部署(一)-安装和部署