java如何将导出的excel下载到客户端

求大神解答,另外我使用这个HttpServletResponseresponse=ServletActionContext.getResponse();ServletAc... 求大神解答,另外 我使用这个 HttpServletResponse response = ServletActionContext.getResponse();ServletActionContext这个方法是不是struts中的,但是我没用struts开发 展开
 我来答
NoGrief
2013-08-16 · TA获得超过253个赞
知道小有建树答主
回答量:304
采纳率:100%
帮助的人:220万
展开全部
package com.mr;
 
import java.io.IOException;
import java.io.PrintWriter;
 
import javax.servlet.ServletException;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
 * 利用Servlet导出Excel
 * @author CHUNBIN
 *
 */
public class ExportExcelServlet extends HttpServlet {
      
       public void doGet(HttpServletRequest request, HttpServletResponse response)
                     throws ServletException, IOException {
              doPost(request, response);
       }
 
       public void doPost(HttpServletRequest request, HttpServletResponse response)
                     throws ServletException, IOException {
              request.setCharacterEncoding("UTF-8");//设置request的编码方式,防止中文乱码
              String fileName ="导出数据";//设置导出的文件名称
              StringBuffer sb = new StringBuffer(request.getParameter("tableInfo"));//将表格信息放入内存
              String contentType = "application/vnd.ms-excel";//定义导出文件的格式的字符串
              String recommendedName = new String(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();
       }
}
<%@ 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>

以上代码来自网络:http://jtlyuan.iteye.com/blog/1322097

更多追问追答
追问
谢谢你,不过这个导出功能我事先了,怎么讲导出的excel下载到客户端啊
追答
java代码34-37行,当你点击的时候,会把excel以流的方式返回给浏览器,浏览器就会弹出下载窗口了。。

ServletActionContext cannot be resolved这个错误是因为你没有导入struts的包。
庹诚映o
2013-08-16
知道答主
回答量:28
采纳率:0%
帮助的人:18万
展开全部
导出的时候,选择一下路径,将这个路径回传给Action,再做导出保存功能!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
蛋哥的龙叔
2013-08-16 · 超过17用户采纳过TA的回答
知道答主
回答量:45
采纳率:0%
帮助的人:46万
展开全部
你把生成的文件放到web-inf下面的一个文件夹,然后吧连接返回到客户端,客户端直接用location.href=连接,就可以了,注意定时清理那个文件夹
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
殇心影誓
2013-08-16 · TA获得超过121个赞
知道答主
回答量:111
采纳率:0%
帮助的人:89.2万
展开全部
看名字都知道了ServletActionContext当然是Servlet的了跟struts有毛的关系,你的题目跟问题有什么关系?
追问
为何我报错ServletActionContext cannot be resolved,球大神解答啊
追答
需要导入servlet.jar这个包
你是开发新手嘛?这些问题在网上都能找到的,直接把问题贴到百度,大部分都能找到为什么,只是你需要自己判断哪些是对的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式