项目结构

pom.xml

                net.sf.jxls            jxls-core            1.0.6compile

学生信息表模板:

ExcelUtiles

package cn.bdqn.utils;import net.sf.jxls.transformer.XLSTransformer;import org.apache.poi.ss.usermodel.Workbook;import org.springframework.util.ResourceUtils;import javax.servlet.http.HttpServletResponse;import java.io.*;import java.util.Map;/** * @ProjectName: Student * @Author: huat * @Date: 2020/5/7 8:53 * @Version: 1.0 */public class ExcelUtiles {    /**     * 输出表格     * @param map 表格中数据     * @param response 响应     * @param excelName 表格名称     * @param excelPath 表格模板保存的路径     */    public static void outExcel(Map map,HttpServletResponse response,String excelName,String excelPath){        File file=null;        try {            file= ResourceUtils.getFile(excelPath);        } catch (FileNotFoundException e) {            e.printStackTrace();        }        //配置下载路径        String path = "/download/";        createDir(new File(path));        //根据模板生成新的excel        File excelFile = createNewFile(map, file, path,excelName);        //浏览器端下载文件        try {            downloadFile(response, excelFile,excelName);        } catch (UnsupportedEncodingException e) {            e.printStackTrace();        }        //删除服务器生成文件        deleteFile(excelFile);    }    /**     * 根据excel模板生成新的excel     * @param beans 表格中的数据     * @param file 文件     * @param path 生成文件的位置     * @param excelName 文件名称     * @return     */    private static File createNewFile(Map beans, File file, String path,String excelName) {        XLSTransformer transformer = new XLSTransformer();        File newFile = new File(path + excelName+".xlsx");        try (InputStream in = new BufferedInputStream(new FileInputStream(file));             OutputStream out = new FileOutputStream(newFile)) {            Workbook workbook = transformer.transformXLS(in, beans);            workbook.write(out);            out.flush();            return newFile;        } catch (Exception e) {            System.out.println(e.getMessage());        }        return newFile;    }    /**     * 将服务器新生成的excel从浏览器下载     * @param response 响应     * @param excelFile 表格文件     * @param excelName 表格名称     * @throws UnsupportedEncodingException     */    private static void downloadFile(HttpServletResponse response, File excelFile,String excelName) throws UnsupportedEncodingException {        /* 设置文件头:最后一个参数是设置下载文件名 */        response.setHeader("Content-type","application/vnd.ms-excel");        // 解决导出文件名中文乱码        response.setCharacterEncoding("UTF-8");        response.setHeader("Content-Disposition","attachment;filename="+new String(excelName.getBytes("UTF-8"),"ISO-8859-1")+".xlsx");        try (                InputStream ins = new FileInputStream(excelFile);                OutputStream os = response.getOutputStream()        ) {            byte[] b = new byte[1024];            int len;            while ((len = ins.read(b)) > 0) {                os.write(b, 0, len);            }        } catch (IOException ioe) {            ioe.printStackTrace();        }    }    /**     * 浏览器下载完成之后删除服务器生成的文件     * 也可以设置定时任务去删除服务器文件     *     * @param excelFile     */    private static void deleteFile(File excelFile) {        excelFile.delete();    }    //如果目录不存在创建目录 存在则不创建    private static void createDir(File file) {        if (!file.exists()) {            file.mkdirs();        }    }}

Controller

 @RequestMapping("downExcel")    public void downExecl(HttpServletResponse response){        Map map=new HashMap();        map.put("name","学生信息表");       //获取学生信息        map.put("studentList",studentService.getStudent());       //"classpath:static/excel/学生表格.xlsx"   表格模板保存路径,classpath:代表resources路径        ExcelUtiles.outExcel(map,response,"学生信息表","classpath:static/excel/学生表格.xlsx");    }

原文:https://my.oschina.net/u/3535099/blog/4268971

作者:冥焱

java导出数据到excel模板_springboot+jxls 根据Excel模板 填写数据并导出相关推荐

  1. java poi 模板填数据库,java使用POI读取excel模版并向固定表格里填写数据详解

    java使用POI读取excel模版并向固定表格里填写数据详解:public class ExportExcelDemo { private HSSFWorkbook workbook = null; ...

  2. jxls模板hashmap_java+jxls利用excel模版进行导出

    大多时候会出现需要导出excel的功能,利用poi可以实现简单的导出,可以说poi的功能非常强大可以做到细节的定制化操作,但相对于在office操作excel,利用poi完全生成excel会显得非常复 ...

  3. Java 导出Excel利器 JXLS(excel模板配置教程)

    简介 相信大家能经常性的遇到项目上各类excel的导出,简单的excel格式,用简单的poi,easyExcel等工具都能导出.但是针对复杂的excel,有固定的样式.合并单元格.动态列等各类要求,导 ...

  4. java excel jxls_java通过jxls框架实现导入导出excel文件实例

    //使用jxls报表生成工具,把java实体类导出生成 Excel文件或导入 Excel 插入数据库 //读取 public class ReadExcel { private final stati ...

  5. java+jxls利用excel模版进行导出

    大多时候会出现需要导出excel的功能,利用poi可以实现简单的导出,可以说poi的功能非常强大可以做到细节的定制化操作,但相对于在office操作excel,利用poi完全生成excel会显得非常复 ...

  6. java数据导出ex_Java高级特性注解:注解实现Excel导出功能

    作者:JerryWu来源:SegmentFault 思否社区 注解是 Java 的一个高级特性,Spring 更是以注解为基础,发展出一套"注解驱动编程". 这听起来高大上,但毕竟 ...

  7. excel文件导入hive乱码_把数据库数据导出到excel

    SQL Server BI Step by Step 2--- 使用SSIS进行简单的数据导入导出 让我们首先开始学习SSIS吧,利用SSIS把SQL Server中的数据导出.首先,打开Vs.net ...

  8. Java使用EasyExcel导出简单、复杂excel,以及多个excel打包导出下载zip

    EasyExcel是一款阿里开源的一款非常优秀Excel导入导出工具,使用内存小,处理速度快,使用方便,正好最近项目中有用到多个excel导出下载的功能,便记录下 EasyExcel使用git地址:G ...

  9. java手动/按模板生成word与excel

    目录 一.前言 二.生成word 1.使用Apache poi手动生成一个word (1)导入依赖 (2)手动生成一个包含表格的word 2.使用Apache poi 按模板生成一个简单的word ( ...

最新文章

  1. Python运行的17个时新手常见错误小结
  2. Spring.net抛砖引玉系列(二)用接口来实现HelloWorld
  3. 皮一皮:这是结婚还是华山论剑...
  4. python学习笔记 day15 内置函数(三)
  5. python导入txt文件并绘图-Python实现读取txt文件并画三维图简单代码示例
  6. Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825...
  7. SpringSide 3 中的 Struts 2
  8. 专家手把手教你写出高水平个人简历
  9. (Oracle学习笔记) Oracle概述
  10. spring-data-jpa
  11. 【汇编语言】记录一组数中负数的个数,8086与MIPS汇编程序
  12. 2009年广东省大学生程序设计竞赛 A
  13. 2018在职计算机科学硕士申请,2018年计算机专业硕士在职研究生备考指导
  14. MySQL创建价格_mysql 建表时的价格用什么类型定义?
  15. 蓝桥杯 ADV-134算法提高 校门外的树
  16. mysql问题_MySQL 各种问题解决方案(一)
  17. 计算机网络技术自谋职业,过去认知或许都是错的 主编告诉你游戏PC该怎么选
  18. 微信小程序之地图功能
  19. 计算机没有安装鼠标和键盘驱动,鼠标不能用如何安装驱动程序-使用键盘安装鼠标驱动的方法 - 河东软件园...
  20. API接口文档编写--易文档

热门文章

  1. Python游戏编程入门,让你秒变电脑大神!
  2. 520送你一份WebStorm的主题包,附带使用图文教程
  3. 性能优化篇(4):千万别使用CSS表达式
  4. 图像处理方面的sci期刊_【IEEE Access 】【一年收录1.5w篇文章的SCI】一个月录用案例...
  5. Airflow使用入门指南
  6. 提高篇 第三部分 图论 第1章 最小生成树
  7. 基础省选+NOI-第4部分 动态规划
  8. 第33课 打擂台 《小学生C++趣味编程》
  9. STM32学习之C语言知识复习
  10. Java学习之连接数据库