SpringBoot使用POI进行Excel下载
作者:兮川 发布时间:2022-06-14 13:16:13
标签:SpringBoot,POI,下载
本文实例为大家分享了SpringBoot使用POI进行Excel下载的具体代码,供大家参考,具体内容如下
使用poi处理Excel特别方便,此处将处理Excel的代码分享出来。
1.maven引用
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
2.service逻辑代码
/**
* 获取下载模版
*/
public void salaryTemplate(HttpServletResponse response)throws Exception{
HSSFWorkbook workbook = new HSSFWorkbook();
exportExcel(workbook);
response.setHeader("Content-type","application/vnd.ms-excel");
// 解决导出文件名中文乱码
response.setCharacterEncoding("UTF-8");
response.setHeader("Content-Disposition","attachment;filename="+new String("工资模版".getBytes("UTF-8"),"ISO-8859-1")+".xls");
workbook.write(response.getOutputStream());
}
//导入为模版
private void exportExcel(HSSFWorkbook workbook) throws Exception {
//创建创建sheet
HSSFSheet sheet = workbook.createSheet("工资");
//创建单元格样式
CellStyle cellStyle = workbook.createCellStyle();
cellStyle.setFillForegroundColor(HSSFColor.SKY_BLUE.index);
//设置首行标题标题
HSSFRow headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellStyle(cellStyle);
headerRow.createCell(0).setCellValue("工号");
headerRow.createCell(1).setCellStyle(cellStyle);
headerRow.createCell(1).setCellValue("姓名");
headerRow.createCell(2).setCellStyle(cellStyle);
headerRow.createCell(2).setCellValue("年龄");
//创建三行数据
HSSFRow row;
for (int i = 0; i <4; i++) {
row = sheet.createRow(i + 1);
row.createCell(0).setCellStyle(cellStyle);
row.createCell(0).setCellValue(i);
row.createCell(1).setCellStyle(cellStyle);
row.createCell(1).setCellValue("张三");
row.createCell(2).setCellStyle(cellStyle);
row.createCell(2).setCellValue(19);
}
}
3.controller
@GetMapping("/salary/template")
public void salaryTemplate(HttpServletResponse response)throws Exception{
salaryService.salaryTemplate(response);
}
请求这个接口,下载下来就是Excel文件。写的比较简单,不过看代码基本就能看懂。
来源:https://blog.csdn.net/zc_ad/article/details/85242556


猜你喜欢
- 一:SparkSQL1.SparkSQL简介Spark SQL是Spark的一个模块,用于处理结构化的数据,它提供了一个数据抽象DataFr
- 体验了一下美团外卖的底部导航栏,感觉动画很流畅,分割线被顶起,还有图标的动画,可能用的lottie,觉得分割线被顶起可以自己写动画,所以试着
- 最近项目里面有个地方是在前面用glide加载图片后,后面再另外一个地方加载相同图片时没有复用glide的缓存,而是自己另外又重新缓存了一套。
- 在进行Java打印输出,进行查看字段值的时候,觉得每次写了System.out.println之后,正式发布的时候,还得一个个的删掉,太麻烦
- 圆形识别方案识别流程判断是否为封闭图形;根据圆的方程,取输入点集中的1/6、3/6、5/6处的三个点,求得圆的方程,获取圆心及半径;取点集中
- 上一次接触到编码的知识,还是上大学的时候,那时候学的是通信工程专业,有关编码的内容,不记得是在通信原理还是信息论与编码里面学到的了。却依然记
- 采用继承Thead类实现多线程:优势:编写简单,如果需要访问当前线程,只需使用this即可,无需使用Thead.currentThread(
- 创建maven父子工程时遇到一个问题,当子工程的名称前缀和父工程的名称一样时,子工程会出现一系列的问题。比如我的父工程名称是microser
- 本人一直喜欢左手使用鼠标,但有时候同事会临时进行操作,还得在控制面板里进行更改,比较不便,何不编写一个控制台程序,双击一下即可切换左右键 代
- 首先利用IDEA创建Maven工程项目1.选择新建项目2.选中Maven骨架3.填写项目名称和项目位置4.Finsh之后默认打开的是pom.
- 什么是banner组件?在许多Android应用上,比如爱奇艺客户端、百度美拍、应用宝等上面,都有一个可以手动滑动的小广告条,这就是bann
- 1.系统架构包括哪些形式?C/S架构B/S架构2.什么是C/S架构?说白了就是客户端/服务端,我们需要安装特定的客户端软卷,例如:QQ。C/
- Android平台已经给我们提供了很多标准的组件,如:TextView、EditView、Button、ImageView、Menu等,还有
- 本文实例讲述了Android实现在一个activity中添加多个listview的方法。分享给大家供大家参考,具体如下:listview的i
- 1.新建springBoot项目在前面有两种方式2.加入thymeleaf模板引擎SpringBoot推荐使用thymeleaf模板引擎语法
- Java ByteArrayInputStream流一、ByteArrayInputStream流定义API说明:ByteArrayInpu
- 一、项目简述功能包括: 登录注册,办理借阅。借阅记录,预约借阅,借出未还, 借阅逾期,学生管理,图书管理,书库分类查询搜索。二、项目运行环境
- 一、算法原理插入排序法:所谓插入排序法乃是将一个数目插入该占据的位置。假设我们输入的是 “53,27,36,15,69, 42”
- 本文介绍了Android是如何设置组件半透明和透明的效果,分享出来供大家参考,下面来看看详细的介绍:1、Button或者ImageButto
- import java.io.BufferedReader; import java.io.IOException;