zoukankan      html  css  js  c++  java
  • JAVA web端JS下载excel文件

    JSP代码如下:

    JSP端引入jquery.easyui.min.js库:

    <script type="text/javascript" src="<c:url value="/resources/jquery/jQuery-2.2.0.min.js"/>"></script> <!--先引入jquery库-->

    <script type="text/javascript" src="<c:url value="/resources/plugins/jquery.easyui.min.js"/>"></script> <!-- 再引入jquery.easyui.min.js库 -->

    <!-- 隐藏form表单,下载excel使用 -->
    <form id="excel" action='' method="get">
            <input type="hidden" id="id" name="id" />
            <input type="hidden" id="startTime" name="startTime" />
            <input type="hidden" id="endTime" name="endTime" />
    </form>

    JS代码如下:

    function downloadExcel(id){
        console.log("id",id);
        $("#excel").find("#startTime").val(startTime.val());
        $("#excel").find("#endTime").val(endTime.val());
        $("#excel").find("#id").val(id);
    //下载excel表单提交 $(
    '#excel').form('submit', { url : basePath + "device/downloadExcel", success : function(data) { var msg = eval('(' + data + ')').msg; if(msg!=null){ showMsgModal(msg); } } }); }

    springMVC后台代码如下:

    @RequestMapping(value = "/downloadExcel", method = RequestMethod.GET)
        public void excel(HttpServletRequest request,HttpServletResponse response,HttpSession session,
                @RequestParam(value = "id", required = false) String id,
                @RequestParam(value = "startTime", required = false) String startTime,
                @RequestParam(value = "endTime", required = false) String endTime){
            OutputStream responseOutput = null;
            try{
                if(StringUtils.isBlank(id)){
                    write2response(response,"ID号不能为空");
                    return;
                }
                if(StringUtils.isBlank(startTime) || StringUtils.isBlank(endTime)){
                    write2response(response,"开始时间或结束时间不能为空");
                    return;
                }
                XSSFWorkbook wbook = new XSSFWorkbook();  //测试下载用,所以这里excel内容直接写死
                XSSFSheet sheet = wbook.createSheet("sheet000");  
                XSSFRow row = sheet.createRow((int) 0);  
                Cell cell = row.createCell(0);
                cell.setCellValue("abc123");
                //写excel文件到response输出流
                //下载文件名称
                String fileName = id+"["+startTime+"-"+endTime+"]" + DateUtil.yyyy_MM_dd_HH_mm_ss();
                fileName = new String(fileName.getBytes("GBK"), "iso8859-1");
                response.reset();// 清空输出流
                response.setHeader("Content-disposition", "attachment;filename="+ fileName + ".xlsx");
                response.setContentType("application/msexcel");// 定义输出类型
                responseOutput = response.getOutputStream();
                wbook.write(responseOutput);
                responseOutput.flush();
            } catch (IOException e1) {
                logger.error(e1);
                write2response(response,"下载出错");
            } finally{
                try {
                    if(null != responseOutput){
                        responseOutput.close();
                    }
                } catch (IOException e) {
                    logger.error(e);
                    write2response(response,"下载出错");
                }
            }
        }
    支付宝扫一扫,为女程序员打赏!
    作者:梦幻朵颜
    版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    树上差分
    循环数组最大子段和(带限制的最大子段和,单调队列优化)
    sprintf函数的用法详解
    VBS基础篇
    VBS基础篇
    VBS基础篇
    VBS基础篇
    VBS基础篇
    Android随笔
    Android随笔
  • 原文地址:https://www.cnblogs.com/zhuwenjoyce/p/7488483.html
Copyright © 2011-2022 走看看