zoukankan      html  css  js  c++  java
  • 关于项目中遇到的问题----导出

    1,首先要生成excel文件,==> 

    如下代码:

            HSSFWorkbook workbook = new HSSFWorkbook();
                    String newPath = DataConvertHelper.getExportPath("mp/egtev/recover/batterydot/");
                String realPath = request.getSession().getServletContext().getRealPath("")+  newPath;
            //1. 判断路径是 否存在,不存在则创建,在目录下创建excel文件
            File dir = new File(realPath);
            if (!dir.isDirectory())
                dir.mkdirs();
            String fileName = realPath + File.separator + "电池回收网点申报" + ".xls";
            File file = new File(fileName);
            if (!file.exists()) {
                if (!file.getParentFile().exists()) {
                    throw new FileNotFoundException("directory " + file.getParent() + " not found");
                } else {
                    file.createNewFile();
                }
            }
    //转化为流
            OutputStream os = new FileOutputStream(fileName);

    //写入流 和 关流

            response.setContentType("application/octet-stream");
            response.setHeader("Content-disposition",
                    "attachment;filename=" + URLEncoder.encode("电池回收网点申报" +".xls", "UTF-8"));// 默认名称车辆表
            
            response.flushBuffer();
        
            workbook.write(os);//写入流
                    workbook.close();//关流

    //前端要获取的返回地址

            UploadResult uploadResult = new UploadResult();
    //获取的地址,为相对地址
            String downloadUrl = newPath.replace(File.separator, "/") + "/" + "电池回收网点申报" + ".xls";
            uploadResult.setDownloadUrl(downloadUrl);
            uploadResult.setResult("1");
            uploadResult.setMsg("操作成功!");

    //设置 返回

        private void returnHtml(UploadResult uploadResult, HttpServletResponse response) {
            try {
                JSONObject jsonObject = JSONObject.fromObject(uploadResult);
                String jsonStr = jsonObject.toString();
                response.setContentType("application/json;charset=UTF-8");
                response.setHeader("Pragma", "No-cache");
                response.setHeader("Cache-Control", "no-cache");
                response.setDateHeader("Expires", 0);
    //            response.getWriter().write(jsonStr);
    //            response.getWriter().flush();
    //            response.getWriter().close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }

    总结: 生成excel 后,获取相对地址的excel信息,返回给前端,前端通过 IP+url的形式 获取相对路径,如:

    容器的相对路径的地址,具体方式为:
    String newPath = DataConvertHelper.getExportPath("mp/egtev/recover/batterydot/"); 原路径

    String realPath = request.getSession().getServletContext().getRealPath("")+  newPath;//具体excel生成的 真实路径,

    相对路径为 newPath。

    自古英雄出炼狱,从来富贵入凡尘。
  • 相关阅读:
    开篇词The Start以及[Vjudge][HDU2242]空调教室
    [故地重游][NOIP2019]格雷码
    关于非触
    致诸君
    三角形的概率
    [HDU5970] 最大公约数
    [51Nod1534] 棋子游戏
    [TJOI2018] 数学计算
    [CF938D] Buy a Ticket
    [HDU4143] A Simple Problem
  • 原文地址:https://www.cnblogs.com/yunliu0603/p/11181512.html
Copyright © 2011-2022 走看看