zoukankan      html  css  js  c++  java
  • 关于springboot通过jxls用模板导出excel的前后台实现

    后端代码

     public void exportExcel(@RequestParam(required = true) String Id, HttpServletResponse response,
                HttpServletRequest request) {
            String msg ="";
            try {
            	Dto.setId(Id);
            	List<HashMap<String, Object>> list = tbsMainInfoService.exportExcel(Dto);
                //文件名称
                String filename = "导出目录";
                 String agent = request.getHeader("User-Agent");
                 String filenameEncoder = "";
                 if (agent.contains("MSIE")) {
                     // IE浏览器
                     filenameEncoder = URLEncoder.encode(filename, "utf-8");
                     filenameEncoder = filenameEncoder.replace("+", " ");
                 } else if (agent.contains("Firefox")) {
                     // 火狐浏览器
                     BASE64Encoder base64Encoder = new BASE64Encoder();
                     filenameEncoder = "=?utf-8?B?" + base64Encoder.encode(filename.getBytes("utf-8")) + "?=";
                 } else {
                     // 其它浏览器
                     filenameEncoder = URLEncoder.encode(filename, "utf-8");
                 }
                 //获取配置路径
                 String url = FtpClientUtil.getStaticFile() + "/" + "目录模板.xlsx";
                 //获取文件流
                 InputStream in = new FileInputStream(url);
              // 创建操作excel文件对象
                 XLSTransformer transformer = new XLSTransformer();
                 // 设置ContentType请求信息格式
                 response.setContentType("application/vnd.ms-excel");
                 response.setHeader("Content-disposition", "attachment;filename=" + filenameEncoder + ".xlsx");
                 // 要下载的这个文件的类型-----客户端通过文件的MIME类型去区分类型
                 response.setContentType(request.getServletContext().getMimeType(filename));
                 ServletOutputStream outputStream = response.getOutputStream();
                 Map<String, Object> map = new HashMap<String, Object>();
                 map.put("list", list);
                 Workbook workbook = transformer.transformXLS(in, map);
                 workbook.write(outputStream);
                 workbook.close();
    		} catch (Exception e) {
    			// TODO: handle exception
    			  e.printStackTrace();
    			  msg = e.getMessage();
    			  throw new BusinessException("导出失败");
    		}
        }
    

      模板

     前台vue代码

     Export() {
                 let api =""
                 let a = document.createElement('a');
                a.href = api;
                a.click();
            },
    如果你不知道自己要去哪里,那么去哪里都是一样
  • 相关阅读:
    Android JNI和NDK学习(04)--NDK调试方法(转)
    Android JNI和NDK学习(03)--动态方式实现JNI(转)
    Android JNI和NDK学习(02)--静态方式实现JNI(转)
    Android JNI和NDK学习(01)--搭建NDK开发环境(转)
    C++语言基础(7)-inline内联函数
    C++语言基础(6)-const 关键字
    C++语言基础(5)-this和static关键字
    红黑树:个人理解与Python实现
    最小堆实现优先队列:Python实现
    二叉查找树:Python实现
  • 原文地址:https://www.cnblogs.com/dragonKings/p/13300332.html
Copyright © 2011-2022 走看看