springboot excel 视图(poi)
springboot excel 视图(poi)
应用:使用视图将数据导出,保存到excel文件中
说明:可直接使用easyexcel下载数据,保存到excel文件
*******************
相关类与接口
AbstractXlsView
public abstract class AbstractXlsView extends AbstractView {public AbstractXlsView() {this.setContentType("application/vnd.ms-excel");}protected boolean generatesDownloadContent() {return true;}protected final void renderMergedOutputModel(Map<String, Object> model, HttpServletRequest request, HttpServletResponse response) throws Exception {Workbook workbook = this.createWorkbook(model, request);this.buildExcelDocument(model, workbook, request, response);response.setContentType(this.getContentType());this.renderWorkbook(workbook, response);}protected Workbook createWorkbook(Map<String, Object> model, HttpServletRequest request) {return new HSSFWorkbook();}protected void renderWorkbook(Workbook workbook, HttpServletResponse response) throws IOException {ServletOutputStream out = response.getOutputStream();workbook.write(out);workbook.close();}protected abstract void buildExcelDocument(Map<String, Object> var1, Workbook var2, HttpServletRequest var3, HttpServletResponse var4) throws Exception;
}
*******************
示例
*************
pojo 层
Person
@Data
public class Person {private Integer id;private String name;private Integer age;
}
*************
controller 层
HelloController
@RestController
public class HelloController {@RequestMapping("/hello")public ModelAndView hello(ModelAndView mv){mv.addObject("list",data());mv.setView(initView("测试数据"));return mv;}@SuppressWarnings("unchecked")private View initView(String fileName){return new AbstractXlsView() {@Overrideprotected void buildExcelDocument(Map<String, Object> map, Workbook workbook, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {if (fileName !=null){httpServletResponse.setHeader("Content-disposition","attachment;filename="+ URLEncoder.encode(fileName, StandardCharsets.UTF_8)+".xlsx");}List<Person> list=(List<Person>)(map.get("list"));Sheet sheet=workbook.createSheet();Row head=sheet.createRow(0);head.createCell(0).setCellValue("id");head.createCell(1).setCellValue("name");head.createCell(2).setCellValue("age");for (int i=0;i<list.size();i++){Person person=list.get(i);Row row=sheet.createRow(i+1);row.createCell(0).setCellValue(person.getId());row.createCell(1).setCellValue(person.getName());row.createCell(2).setCellValue(person.getAge());}}};}private List<Person> data(){List<Person> list=new ArrayList<>();for (int i=0;i<5;i++){Person person=new Person();person.setId(i);person.setName("瓜田李下 "+i);person.setAge(20+i);list.add(person);}return list;}
}
*******************
使用测试
localhost:8080/hello
springboot excel 视图(poi)相关推荐
- SpringBoot中使用POI导出Excel时怎样循环数据库数据赋值
场景 SpringBoot中使用POI实现自定义Excel布局式导出: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/894977 ...
- springboot中使用poi导出excel文件(亲测实现了第一个功能)
1.POI简介 Jakarta POI 是一套用于访问微软格式文档的Java API. 组件HWPF用于操作Word的; 组件HSSF用于操作Excel格式文件. 2.常用组件 HSSFWorkboo ...
- SpringMVC自定义视图 Excel视图和PDF视图
一.自定义视图-Excel视图 1.Maven依赖 引入POI <dependency><groupId>org.apache.poi</groupId><a ...
- Spring MVC 中自定义视图 @Component 及 配置 多个视图解析器 Excel视图
首先我们建立一个自己的View实现View接口.要注意在类上面加上@Component的注解,因为看BeanNameViewResolver的源码知道,是直接从ioc容器里面拿的根据名字拿的视图,所以 ...
- Excel的poi缓存问题
Excel的poi缓存问题 背景: 最近工作需要,需要完成生成新的Excel,然后从Excel中读取包含公式的文本内容. 问题: 当程序中修改公式对应的单元格数据变化时,公式获取的值仍然还是原来的值, ...
- java写入excel文件poi
java写入excel文件 java写入excel文件poi,支持xlsx与xls,没有文件自动创建 package com.utils;import java.io.File; import jav ...
- Excel导入poi、导出poi
Excel导入poi.导出poi 依赖Jar包 <!-- 处理Excel2003 --> <dependency><groupId>org.apache.poi&l ...
- Java操作Excel之POI:java读写excel文件以及打印设置
Java操作Excel之POI:java读写excel文件以及打印设置 POI的jar包下载地址:http://poi.apache.org/download.html 注意:项目中导入poi 4.0 ...
- JAVA实现数据库数据导入/导出到Excel(POI)
原文地址为: JAVA实现数据库数据导入/导出到Excel(POI) 准备工作: 1.导入POI包:POI下载地址http://mirrors.tuna.tsinghua.edu.cn/apache/ ...
最新文章
- arm-linux-g 找不到头文件,交叉编译错误“ arm-none-eabi-g ++找不到条目符号”
- 个人管理 - 书籍推荐(待读)
- 环信SDK 踩坑记webIM篇(二)
- vs2017调用linux脚本,[代码] ShellExecute调用外部程序_VS2017
- 如何解决EXCEL中的科学计数法
- TensorFlow 教程 --新手入门--1.4 win10环境安装实例
- Python int() 函数
- Jmeter启动报错解决方案
- Linux定义多个标准输入输出,言简意赅解释Linux中的标准输入输出
- 网站安全之密码明文传输漏洞
- [Database] 不知道表名和字段查找值=1234的数据.
- SoapUI接口测试——添加断言(检查点)——Assertion
- [日常摸鱼]Luogu2878 [USACO07JAN]Protecting the Flowers
- 1156 Sexy Primes – PAT甲级真题
- win10系统文件拖拽卡顿_如何解决Win10鼠标拖动窗口有延迟?
- C#开发之——MonthCalendar(12.18)
- 核心大小1M的VIN码OCR识别核心
- MATLAB应用——曲线长度的求解
- 致远OA合并处理策略
- [VB.NET] - Rs232 通讯 COM口