首页 > 其他 > 详细

关于项目中遇到的问题----导出

时间:2019-07-13 19:10:48      阅读:101      评论:0      收藏:0      [点我收藏+]

 

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。

关于项目中遇到的问题----导出

原文:https://www.cnblogs.com/yunliu0603/p/11181512.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!