Java 导出Excel利用模版导出

Java 导出Excel利用模版导出Java 导出 Excel 和 word 的方式大体相同 1 Excel 模版导出到页面下载首先 导入依赖在 pom xml 中我选择的事 1 03 的版本第二 在项目或是自己需要的地方建立个文件夹放导出文件的模版 并且配好模版第三 controller 层写入 export 方法 这里我写的没有将可以作为工具的部分单独写一块而是直接写在 con

Java导出Excel和word的方式大体相同

1、Excel模版导出到页面下载

首先,导入依赖在pom.xml中我选择的事1.03的版本

Java 导出Excel利用模版导出

           第二、在项目或是自己需要的地方建立个文件夹放导出文件的模版,并且配好模版

Java 导出Excel利用模版导出

          Java 导出Excel利用模版导出

      第三,controller层写入export方法,这里我写的没有将可以作为工具的部分单独写一块而是直接写在controller的方法中这样更直观,并且是使用注解的方式进行的项目配置

 @RequestMapping("/export") private void export(Queryable queryable, PropertyPreFilterable propertyPreFilterable, HttpServletRequest request,HttpServletResponse response) throws Exception { //根据系统的需要获取数据源 List 
  
    resultList = pagejson.getResults(); //获得模版 String tempFileName = request.getSession().getServletContext().getRealPath("/excelTemplate"); //将结果放入这个list中 List values = new ArrayList(); Map beans = new HashMap(); Date date = new Date(); SimpleDateFormat simpl = new SimpleDateFormat("yyyyMMddHHmmss"); String currntTime = simpl.format(date); tempFileName += "/policyDemo.xls"; //导出列表名 String fileName = currntTime+"列表.xls"; values.addlist); beans.put("values", values); //文件名称统一编码格式 fileName = URLEncoder.encode(fileName, "utf-8"); //生成的导出文件 File destFile = File.createTempFile(fileName, ".xls"); //transformer转到Excel XLSTransformer transformer = new XLSTransformer(); BufferedInputStream bis = null; BufferedOutputStream bos = null; try { //将数据添加到模版中生成新的文件 transformer.transformXLS(tempFileName, beans, destFile.getAbsolutePath()); //将文件输入 InputStream inputStream = new FileInputStream(destFile); // 设置response参数,可以打开下载页面 response.reset(); //设置响应文本格式 response.setContentType("application/vnd.ms-excel;charset=utf-8"); response.setHeader("Content-Disposition", "attachment;filename=" + new String((fileName + ".xls").getBytes(), "iso-8859-1")); //将文件输出到页面 ServletOutputStream out = response.getOutputStream(); bis = new BufferedInputStream(inputStream); bos = new BufferedOutputStream(out); byte[] buff = new byte[2048]; int bytesRead; // 根据读取并写入 while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) { bos.write(buff, 0, bytesRead); } } catch (ParsePropertyException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvalidFormatException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally { //使用完成后关闭流 try { if (bis != null) bis.close(); if (bos != null) bos.close(); } catch (IOException e) { } } } 
  

如果用配置文件的方式的话response不用写了 在配置文件那写一下输出类型就可以了

Java 导出Excel利用模版导出

  • 第四、在页面上做一个导出按钮或是其他的触发,如果想用ajax去导出的话需要做特殊处理,正常返回是不会下载的,建议用同步的方式。

 var result = $.param(queryParams); location.href="prolicy/export?"+result;//这里的result则是选取的查询条件 }

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224476.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月17日 上午11:51
下一篇 2026年3月17日 上午11:51


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号