java 若以框架-导出方式

相比阿里巴巴的若依具有一套完善的框架,所以自然导出也是非常简单的

1.第一步还是要有vo层 query层 mapper层等等基础层

2.在controller层中,还是一样写一个接口

 @PostMapping("/export")
 @ApiOperation(value = "导出", produces = MediaType.APPLICATION_JSON_VALUE)
  public void export(HttpServletResponse response, TestQuery query) throws UnsupportedEncodingException {
        String fileName = "attachment;filename="+ URLEncoder.createDefault().encode("×××导出", Charset.forName("utf-8")) +".xls";
        response.setHeader("Content-Disposition", fileName);
        List<TestVo> list = testService.export(query);
        ExcelUtil<TestVo> util = new ExcelUtil<>(TestVo.class);
        util.exportExcel(response, list, "×××导出", "");
    }

其中要注意的是,下面这一句主要是因为我的电脑导出时会自己导出txt格式,加上这一句就会导出xlsx格式,可根据自身进行判断

  String fileName = "attachment;filename="+ URLEncoder.createDefault().encode("×××导出", Charset.forName("utf-8")) +".xls";

 3.exportExcel也是自己封装的,可根据需要自行封装

public void exportExcel(HttpServletResponse response, List<T> list, String sheetName, String title)
    {
        response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
        response.setCharacterEncoding("utf-8");
        this.init(list, sheetName, title, Type.EXPORT);
        exportExcel(response);
    }

4.进入service层,快捷键可用Alt +enter 会自动生成service层的代码

 /**
    * @Description: 导出
    * @Param: query
    */
    List<TestVo> export(TestQuery query);

5.impl层,如果你想用TestServiceUtil需要自己在工具类里建,然后写方法,如果嫌麻烦可以使用sql语句比较快且简单。

@Override
    public List<TestVo> export(TestQuery query) {
        QueryWrapper<Test> queryWrapper = TestServiceUtil.buildWrapper(query);

        List<Test> findList = baseMapper.selectList(queryWrapper);
        //添加序号
        AtomicInteger index = new AtomicInteger(1);
        return findList.stream().map(entity -> {
            TestVo testVo = BeanUtil.copyProperties(entity, TestVo.class);
            testVo.setIndex(index.getAndIncrement());
            return testVo ;
        }).collect(Collectors.toList());
    }

6.在vo层需要导出的字段需要加注解,cellType可不加,这是规定导出的形式是数字或是字符串,如果cellType后面写错了会导致导出时没有数据

@Excel(name = "名字", cellType = Excel.ColumnType.String)

现在用postman调用,可成功。

自我感觉用若以框架写代码比较简单,第一次接触若以框架,还算是比较好上手的。但是也根据个人的喜好,写代码的风格不同,喜欢的框架也不同

共勉!

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值