<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %> <% String fileName = "最简单的导出表格.xls"; fileName = new String(fileName.getBytes("GBK"),"ISO8859_1"); response.setHeader("Content-Disposition", "attachment;filename="+fileName); response.setDateHeader("Expires", 0); response.setHeader("Cache-Control", "no-cache"); response.setHeader("Pragma", "no-cache"); %> <HTML> <HEAD> <META http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta content=""> <TITLE>最简单的导出表格</TITLE> </HEAD> <BODY> <TABLE id="Main" cellspacing="0" cellpadding="0" border="1" width="100%"> <TBODY> <TR > <TH nowrap="nowrap" style="TEXT-ALIGN: center" >代理商ID</TH> <TH nowrap="nowrap" style="TEXT-ALIGN: center" >代理商名称</TH> <TH nowrap="nowrap" style="TEXT-ALIGN: center" >联系手机</TH> </TR> <TR height="30"> <TD align="center" nowrap="nowrap"> July</TD> <TD align="center" nowrap="nowrap"> 男</TD> <TD align="center" nowrap="nowrap"> 羽毛球</TD> </TR> </TBODY> </TABLE> </BODY> </HTML>
只要将里面的java代码放在servlet里跳转过来,带上动态数据,将表格中的内容替换为动态数据,就能实现一个最简单的表格导出功能。
以下是后来学到的,这种比较灵活,可以点击按钮后保存指定页面指定的表格,在要导出表格的页面点击一个导出按钮后激活该函数:
function doExport(){ document.all.queryForm.action="exportExcel.jsp"; //mytable为你要导出的表格的id var str = document.getElementById("julyTable").outerHTML; //建立一个隐藏域来存储str的值 document.all.excelText.value= str; //建立隐藏域来保存要导出的名字,也可以直接在action里面传值 document.all.fileName.value="bepatientjavaeyecom.xls"; document.all.queryForm.submit(); }
下面是exportExcel.jsp文件,也可以是servlet:
<%@page contentType="text/html;charset=GBK"%> <% String fileName= new String(request.getParameter("filaName").getBytes("GBK"),"iso-8859-1"); response.setContentType( "Application;charset=GBK"); response.setHeader("Content-disposition","attachment;filename=\"" + fileName + "\";"); java.io.PrintWriter bos = response.getWriter(); String html = request.getParameter("excelText"); bos.write(html); bos.close(); %>