将数据库中的数据导出为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学习笔记的主要内容,如果未能解决你的问题,请参考以下文章

java如何读取word中的excel表格数据

Java导出Excel表格

java 导出excel表格 高手进

使用java将数据库中的数据导出到excel中

java端导出Excel表格。

用java将数据导出到wps表格中,怎么实现