将数据库中的数据导出为excel表格——java学习笔记
Posted houruoyu3
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将数据库中的数据导出为excel表格——java学习笔记相关的知识,希望对你有一定的参考价值。
最近我的项目增加了一个需求,需要将数据库中的数据导出到excel表格中,再下载下来。而生成Excel比较有名的框架有Apache poi等,网络上介绍其使用方法的文章也很多,但是我今天使用的是阿里出的easyexcel框架,我个人感觉使用起来更简单便捷,GitHub地址
导入maven依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
导出excel
entity对象类
@Data
public class TabExcelProperty
//设置excel表头名称
@ExcelProperty(value = "用户id",index = 0)
private Integer id;
@ExcelProperty(value = "用户名",index = 1)
private String name;
@ExcelProperty(value = "年龄",index = 2)
private Integer age;
@ExcelProperty(value = "性别",index = 3)
private String sex;
@ExcelProperty(value = "手机电话",index = 4)
private String phone;
value表示列的名称,index表示是第几列。
数据库中表的数据
Service类
@Service
public class ExportServiceImpl implements ExportService
@Autowired
ExportMapper exportMapper;
@Override
public void exportExcel(HttpServletResponse response)
//查询表中的数据
List<TabExcelProperty> list = exportMapper.getUser();
try
response.setContentType("application/vnd.ms-excel");
response.setCharacterEncoding("utf-8");
// 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
String fileName = URLEncoder.encode("测试文件", "UTF-8").replaceAll("\\\\+", "%20");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");
EasyExcel.write(response.getOutputStream(), TabExcelProperty.class).sheet("表格1").doWrite(list);
catch (IOException e)
e.printStackTrace();
通过mapper的exportMapper.getUser()方法查询出数据表中的数据,然后用EasyExcel.write写入响应对象中。
然后Controller直接调用就行。
结果:
以上是关于将数据库中的数据导出为excel表格——java学习笔记的主要内容,如果未能解决你的问题,请参考以下文章