将数据库中的数据导出为EXCEL表格

POM依赖

     <!--导出为excel-->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>2.0.5</version>
        </dependency>
        <!--mp-->
      <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

工具类 这个可以不写 减少controller的代码量

  public class ExcelUtils {
    public static void writeExcel(HttpServletResponse response , List<Student> list) throws IOException {

        ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();

        //定义工作表对象
        WriteSheet sheet =EasyExcel.writerSheet(0,"sheet").head(Student.class).build();
        // 往excel中添加数据
        excelWriter.write(list,sheet);
        excelWriter.finish();

    }
}

实体类(DTO)
@TableName(“student”)
@ExcelProperty(“ID”) EXCEL表的 第一行

@Data   //get、set。
@AllArgsConstructor  //有参
@NoArgsConstructor   //无参
@TableName("student")
@EqualsAndHashCode(callSuper = false)
public class StudentDO {
    @TableId(type = IdType.AUTO)
    @ExcelProperty("ID")
    private Long id;

    @ExcelProperty("姓名")
    private String name;

    @ExcelProperty("生日")
    @DateTimeFormat("yyyy-MM-dd")
    private Date birthday;

    @ExcelProperty("大学")
    private String college;

    @ExcelProperty("职位")
    private String major;

}

controller

@RestController
public class TestController {
 /**
     * 导出为EXCEL表格
     * @param response
     * @throws IOException
     */
    @Resource
    private StudentMapper studentMapper;
    @GetMapping("/test")
    @ResponseBody
    public void test(HttpServletResponse response) throws IOException {
        List<Student> list = new ArrayList<>();
        //创建QueryWrapper对象
        Wrapper<Student> Wrapper = new QueryWrapper<>();
        //selectObjs(Wrapper)
        System.out.println(studentMapper.selectObjs(Wrapper));
        Object []a=studentMapper.selectObjs(Wrapper).toArray();
        for (int i = 0; i < a.length; i++) {
            System.out.println(studentMapper.selectById(a[i].toString()));
            list.add(studentMapper.selectById(a[i].toString()));
        }

        response.setContentType("application/vnd.ms-excel");
        response.setHeader("Content-Disposition", "attachment;filename=" + "test.xlsx");
        ExcelUtils.writeExcel(response ,list);
//        //以下部分可以写进工具类
//        ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).build();
//        //定义工作表对象
//        WriteSheet sheet =EasyExcel.writerSheet(0,"sheet").head(Student.class).build();
//        // 往excel中添加数据
//        excelWriter.write(list,sheet);
//        excelWriter.finish();
    }


}

Mapper

@Mapper
@Repository
public interface StudentMapper extends BaseMapper<Student> {

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值