我是靠谱客的博主 高贵自行车,最近开发中收集的这篇文章主要介绍SpringBoot使用easyexcel打印数据1.初始化SpringBoot项目2.编写实体类Person.java 3.编写自定义工具类ExcelUtil.java4.编写控制器实现接口调用PersonController.java5.测试6.代码结构,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
1.初始化SpringBoot项目
(1)在SpringBoot官网(https://start.spring.io/)初始化一个Springboot工程,然后点击Generate:
(2)在IDEA中导入该项目,初始目录如下:
(3)在pom.xml中添加easyexcel需要的依赖:
<!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.6</version>
</dependency>
2.编写实体类Person.java
package com.exceltest.demo.domain;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.DateTimeFormat;
import lombok.Data;
import java.util.Date;
@Data
public class Person {
@ExcelProperty(value = "姓名", index = 0)
private String name;
@ExcelProperty(value = "年龄", index = 1)
private Integer age;
@ExcelProperty(value = "性别", index = 2)
private String sex;
@DateTimeFormat("yyyy-MM-dd")
@ExcelProperty(value = "生日", index = 3)
private Date birthday;
// 忽略此字段
@ExcelIgnore
private String address;
}
3.编写自定义工具类ExcelUtil.java
package com.exceltest.demo.utils;
import com.alibaba.excel.EasyExcel;
import com.exceltest.demo.domain.Person;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.OutputStream;
import java.net.URLEncoder;
import java.util.List;
public class ExcelUtil {
/**2.*版本更新代码
* excel的 pojo 实体类取消了 继承BaseRowModel.
*
*/
public static void writeExcel(HttpServletResponse response, List<?> list, String fileName, String sheetName)throws Exception {
EasyExcel.write(getOutputStream(fileName,response), Person.class)
.sheet(sheetName)
.doWrite(list);
}
/**
* 导出文件时为Writer生成OutputStream
* @param fileName
* @param response
* @return
*/
private static OutputStream getOutputStream(String fileName, HttpServletResponse response) throws Exception {
try {
fileName = URLEncoder.encode(fileName, "UTF-8");
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf8");
response.setHeader("Content-Disposition", "attachment; filename=" + fileName + ".xlsx");
response.setHeader("Pragma", "public");
response.setHeader("Cache-Control", "no-store");
response.addHeader("Cache-Control", "max-age=0");
return response.getOutputStream();
} catch (IOException e) {
throw new Exception("导出excel表格失败!", e);
}
}
}
4.编写控制器实现接口调用PersonController.java
package com.exceltest.demo.controller;
import com.exceltest.demo.domain.Person;
import com.exceltest.demo.utils.ExcelUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.servlet.http.HttpServletResponse;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Controller
@RequestMapping("/person")
public class PersonController {
@RequestMapping("/hello")
@ResponseBody
public String hello(){
return "hello person";
}
@RequestMapping("/exportTest")
public void exportEnterpriseBillV2(HttpServletResponse response) throws Exception {
//模模拟sql查出的数据
Person person = new Person();
person.setName("Micheal");
person.setAge(20);
person.setSex("男");
person.setBirthday(new Date());
person.setAddress("AAA");
Person person2 = new Person();
person2.setName("Bruce");
person2.setAge(24);
person2.setSex("男");
person2.setBirthday(new Date());
person2.setAddress("BBB");
List<Person> list = new ArrayList<>();
list.add(person);
list.add(person2);
ExcelUtil.writeExcel(response, list, "导出测试", "sheet单1");
}
}
5.测试
输入:http://localhost:8080/person/hello,出现如下所示。
输入:http://localhost:8080/person/exportTest,会自动下载文件。
下载的文件内容如下:
6.代码结构
最后
以上就是高贵自行车为你收集整理的SpringBoot使用easyexcel打印数据1.初始化SpringBoot项目2.编写实体类Person.java 3.编写自定义工具类ExcelUtil.java4.编写控制器实现接口调用PersonController.java5.测试6.代码结构的全部内容,希望文章能够帮你解决SpringBoot使用easyexcel打印数据1.初始化SpringBoot项目2.编写实体类Person.java 3.编写自定义工具类ExcelUtil.java4.编写控制器实现接口调用PersonController.java5.测试6.代码结构所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复