alibabaExcel最简单的导出功能,复制直接用

采用alibaba的excel到处方式,最基本的注解指定列信息value :列名称,index:第几列,还有很多注解这里先不写了。
@ExcelProperty(value = "公司名称", index = 0)
@GetMapping("/cityHiddenExport")
    public void cityHiddenExport(HttpServletResponse response) throws IOException {
        List<XfCountyHazardStatisticsJob> list = indexService.cityHiddenExport(response);
        OutputStream outputStream = response.getOutputStream();
        try {
            //设置内容类型
            response.setContentType("application/vnd.vnd.ms-excel");
            //设置编码格式
            response.setCharacterEncoding("utf-8");
            //设置导出文件名称(避免乱码)
            String fileName = URLEncoder.encode("隐患文件".concat(".xlsx"), "UTF-8");
            // 设置响应头
            response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName);
            //这个实现方式非常简单直接,使用EasyExcel的write方法将查询到的数据进行处理,以流的形式写出即可
            EasyExcel.write(outputStream, XfCountyHazardStatisticsJob.class)//对应的导出实体类
                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()) // 设置自适应列宽
                    .registerWriteHandler(new AbstractColumnWidthStyleStrategy() {
                        @Override
                        protected void setColumnWidth(WriteSheetHolder writeSheetHolder, List<CellData> list, Cell cell, Head head, Integer integer, Boolean aBoolean) {
                            // 设置居中
                            CellStyle cellStyle = cell.getCellStyle();
                            cellStyle.setAlignment(HorizontalAlignment.CENTER); // 水平居中
                            cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); // 垂直居中
                            cell.setCellStyle(cellStyle);
                        }
                    })
                    .excelType(ExcelTypeEnum.XLSX)//excel文件类型,包括CSV、XLS、XLSX
                    .sheet("隐患列表")//导出sheet页名称
                    .doWrite(list); //查询获取的数据集合List<T>,转成excel
        } catch (IOException e) {
            throw new RuntimeException(e);
        } finally {
            outputStream.flush();
            outputStream.close();
        }
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值