java导出数据到excel模板_springboot+jxls 根据Excel模板 填写数据并导出
项目结构
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模板 填写数据并导出相关推荐
- java poi 模板填数据库,java使用POI读取excel模版并向固定表格里填写数据详解
java使用POI读取excel模版并向固定表格里填写数据详解:public class ExportExcelDemo { private HSSFWorkbook workbook = null; ...
- jxls模板hashmap_java+jxls利用excel模版进行导出
大多时候会出现需要导出excel的功能,利用poi可以实现简单的导出,可以说poi的功能非常强大可以做到细节的定制化操作,但相对于在office操作excel,利用poi完全生成excel会显得非常复 ...
- Java 导出Excel利器 JXLS(excel模板配置教程)
简介 相信大家能经常性的遇到项目上各类excel的导出,简单的excel格式,用简单的poi,easyExcel等工具都能导出.但是针对复杂的excel,有固定的样式.合并单元格.动态列等各类要求,导 ...
- java excel jxls_java通过jxls框架实现导入导出excel文件实例
//使用jxls报表生成工具,把java实体类导出生成 Excel文件或导入 Excel 插入数据库 //读取 public class ReadExcel { private final stati ...
- java+jxls利用excel模版进行导出
大多时候会出现需要导出excel的功能,利用poi可以实现简单的导出,可以说poi的功能非常强大可以做到细节的定制化操作,但相对于在office操作excel,利用poi完全生成excel会显得非常复 ...
- java数据导出ex_Java高级特性注解:注解实现Excel导出功能
作者:JerryWu来源:SegmentFault 思否社区 注解是 Java 的一个高级特性,Spring 更是以注解为基础,发展出一套"注解驱动编程". 这听起来高大上,但毕竟 ...
- excel文件导入hive乱码_把数据库数据导出到excel
SQL Server BI Step by Step 2--- 使用SSIS进行简单的数据导入导出 让我们首先开始学习SSIS吧,利用SSIS把SQL Server中的数据导出.首先,打开Vs.net ...
- Java使用EasyExcel导出简单、复杂excel,以及多个excel打包导出下载zip
EasyExcel是一款阿里开源的一款非常优秀Excel导入导出工具,使用内存小,处理速度快,使用方便,正好最近项目中有用到多个excel导出下载的功能,便记录下 EasyExcel使用git地址:G ...
- java手动/按模板生成word与excel
目录 一.前言 二.生成word 1.使用Apache poi手动生成一个word (1)导入依赖 (2)手动生成一个包含表格的word 2.使用Apache poi 按模板生成一个简单的word ( ...
最新文章
- Python运行的17个时新手常见错误小结
- Spring.net抛砖引玉系列(二)用接口来实现HelloWorld
- 皮一皮:这是结婚还是华山论剑...
- python学习笔记 day15 内置函数(三)
- python导入txt文件并绘图-Python实现读取txt文件并画三维图简单代码示例
- Atitit.播放系统的选片服务器,包厢记时系统 的说明,教程,维护,故障排查手册p825...
- SpringSide 3 中的 Struts 2
- 专家手把手教你写出高水平个人简历
- (Oracle学习笔记) Oracle概述
- spring-data-jpa
- 【汇编语言】记录一组数中负数的个数,8086与MIPS汇编程序
- 2009年广东省大学生程序设计竞赛 A
- 2018在职计算机科学硕士申请,2018年计算机专业硕士在职研究生备考指导
- MySQL创建价格_mysql 建表时的价格用什么类型定义?
- 蓝桥杯 ADV-134算法提高 校门外的树
- mysql问题_MySQL 各种问题解决方案(一)
- 计算机网络技术自谋职业,过去认知或许都是错的 主编告诉你游戏PC该怎么选
- 微信小程序之地图功能
- 计算机没有安装鼠标和键盘驱动,鼠标不能用如何安装驱动程序-使用键盘安装鼠标驱动的方法 - 河东软件园...
- API接口文档编写--易文档