六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 38|回复: 0

spring MVC 导出excel

[复制链接]

升级  88%

8

主题

8

主题

8

主题

童生

Rank: 1

积分
44
 楼主| 发表于 2013-1-29 10:50:05 | 显示全部楼层 |阅读模式
// 导出excel方法    @RequestMapping("exportExcel")    public void exportExcel(HttpServletRequest request, HttpServletResponse response)    {        HttpSession session = request.getSession();        session.setAttribute("state", null);        // 生成提示信息,        response.setContentType("application/vnd.ms-excel");        String codedFileName = null;        OutputStream fOut = null;        try        {            // 进行转码,使其支持中文文件名            codedFileName = java.net.URLEncoder.encode("中文", "UTF-8");            response.setHeader("content-disposition", "attachment;filename=" + codedFileName + ".xls");            // response.addHeader("Content-Disposition", "attachment;   filename=" + codedFileName + ".xls");            // 产生工作簿对象            HSSFWorkbook workbook = new HSSFWorkbook();            //产生工作表对象            HSSFSheet sheet = workbook.createSheet();            for (int i = 0; i <= 30000; i++)            {                HSSFRow row = sheet.createRow((int)i);//创建一行                HSSFCell cell = row.createCell((int)0);//创建一列                cell.setCellType(HSSFCell.CELL_TYPE_STRING);                cell.setCellValue("测试成功" + i);            }            fOut = response.getOutputStream();            workbook.write(fOut);        }        catch (UnsupportedEncodingException e1)        {}        catch (Exception e)        {}        finally        {            try            {                fOut.flush();                fOut.close();            }            catch (IOException e)            {}            session.setAttribute("state", "open");        }        System.out.println("文件生成...");    }    @RequestMapping("check")    public void check(HttpServletRequest request, HttpServletResponse response)    {        try        {            if ("open".equals(request.getSession().getAttribute("state")))            {                request.getSession().setAttribute("state", null);                response.getWriter().write("true");                response.getWriter().flush();            }            else            {                response.getWriter().write("false");                response.getWriter().flush();            }        }        catch (IOException e)        {}    }
/***********导出start************/var excel_flag = 0;var win_check;    var exportExcelBtn = new Ext.Button({        renderTo:'exportExcelBtn',        text:"<span class='marL10'>"+'导出'+"</span>",        height:24,        iconCls:'findnew',        width:110,        bodyStyle:'padding:5px',        handler: function()        {            excel_flag = 0;            //禁用按钮        exportExcelBtn.disable();        location.href = "exportExcel";        //每隔一秒向后台发送请求        win_check = window.setInterval(check, 1000);          }    });        /**     * 用于防止重复提交     */    function check()    {    excel_flag ++;    if(excel_flag > 30)    {    //清空定时器    window.clearInterval(win_check);    //启用按钮    exportExcelBtn.enable();    }    Ext.Ajax.request(        {            url : 'check',            success : function (response, result)            {            if(response.responseText=="true")            {            //清空定时器            window.clearInterval(win_check);            //启用按钮            exportExcelBtn.enable();            }            }        })    }    /***********导出end*****************/
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表