springboot+easyExcel导出数据

springboot+easyExcel导出数据,第1张

springboot+easyExcel导出数据

    com.alibaba
    easyexcel
    1.1.2-beta5
   
@Component
public class ExcelFactory {

    public ExportExcelUtil createExportExcel() {
        return new ExportExcelUtil<>();
    }
}
@Data
public class GuangGaoJiExcel extends baseRowModel {

    @ExcelProperty(value = {"公司名"},index = 0)
    private String companyName;

    @ExcelProperty(value = {"接入码"},index = 1)
    private String machineNum;

    @ExcelProperty(value = {"接入密码"},index = 2)
    private String machineSeq;

    @ExcelProperty(value = {"发布信息账号"},index = 3)
    private String publishAccount;

    @ExcelProperty(value = {"公司logo"},index = 4)
    private String logo;

    @ExcelProperty(value = {"公司地址"},index = 5)
    private String address;

    @ExcelProperty(value = {"广告宣传语"},index = 6)
    private String slogan;

    @ExcelProperty(value = {"摆放位置"},index = 7)
    private String location;

    @ExcelProperty(value = {"创建时间"},index = 8)
    private String createTime;

    @ExcelProperty(value = {"创建人"},index = 9)
    private String createBy;
}
@Resource
private ExcelFactory excelFactory;

public void exportData(HttpServletResponse response) {
        List idList = dao.getAllId();
        if (idList.size() > 0) {
            List data = new ArrayList<>();
            for (Long id : idList) {
                logger.info("id:{}",id);
                AdPartner adPartner = dao.findById(id).orElse(null);
                User user = userDao.findById(String.valueOf(adPartner.getUserId())).orElse(null);
                AdPartnerDto dto = getDetail(id);
                GuangGaoJiExcel guangGaoJiExcel = new GuangGaoJiExcel();
                BeanUtils.copyProperties(dto,guangGaoJiExcel);
                guangGaoJiExcel.setCreateTime(String.valueOf(adPartner.getCreatedTime()));
                if (null != user) {
                    guangGaoJiExcel.setCreateBy(user.getNickname());
                }
                data.add(guangGaoJiExcel);
            }
            String name = "广告机数据表.xlsx";
            try {
                excelFactory.createExportExcel().exportExcel(response,data, GuangGaoJiExcel.class,name);
            } catch (Exception e) {
                logger.error("下载失败:{}",e.getMessage());
            }
        }
    }
public class ExportExcelUtil {

    public ExportExcelUtil() {}

    
    public void exportExcel(HttpServletResponse response, List data, Class clazz, String fileName) throws IOException {
        response.reset();
        response.setContentType("application/vnd.ms-excel");
        // 注意,这里filename*=utf-8''是为了避免导出的文件名乱码!!!
        response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
        OutputStream out = null;
        try {
            out = response.getOutputStream();
            //ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX);
            StyleExcelHandler handler = new StyleExcelHandler();
            //ExcelWriter writer = new ExcelWriter(null,out, ExcelTypeEnum.XLSX,true);
            ExcelWriter writer = new ExcelWriter(null,out, ExcelTypeEnum.XLSX,true,handler);
            Sheet sheet1 = new Sheet(1, 0, clazz);
            sheet1.setSheetName("sheet1");
            writer.write(data, sheet1);
            writer.finish();
        } finally {
            if (out != null) {
                out.close();
            }
        }
    }

    public void createExcel(ByteArrayOutputStream out,List data, Class clazz) throws IOException{

        //StyleExcelHandler handler = new StyleExcelHandler();
        ExcelWriter writer = new ExcelWriter(null,out, ExcelTypeEnum.XLSX,true);
        Sheet sheet1 = new Sheet(1, 0, clazz);
        sheet1.setSheetName("在线咨询数据分析表");
        writer.write(data, sheet1);
        writer.finish();

    }
}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5678253.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存