【文件导出1】easyexcel导出excel文件数据

easyexcel实现excel文件数据导出


前言

springBoot项目实现excel文件导出功能,可以在浏览器点击导出下载excel格式文件到本地。使用alibaba开源项目easyexcel实现,项目地址:https://easyexcel.opensource.alibaba.com/


一、引入easyexcel依赖

pom.xml配置如下:

<dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.3.2</version>
 </dependency>

二、实现代码

1.controller层

@GetMapping("/record/_export")
@ApiOperation("查询记录导出")
public void recordExport(HttpServletResponse response, RecordSearchRequest query) throws IOException {
   
        ruleVerifyResultService.recordExport(response, query);
    }

RecordSearchRequest为请求查询条件,根据条件导出对应的记录。

2.接口层

public interface ResultService extends IService<RuleVerifyResultEntity> {
   
 /**
     * 记录导出
     * @param query
     * @return
     */
    void recordExport(HttpServletResponse response, RecordSearchRequest query) throws IOException;
}

3.接口实现类

@Override
public void recordExport(HttpServletResponse response, RecordSearchRequest query) throws IOException {
   
        LocalDateTime startExecuteTime = null;
        LocalDateTime endExecuteTime = null;
        //设置导出文件名称
        String fileName = "检验记录列表数据";
        if (ObjectUtils.isNotEmpty(query.getExecuteStartTime())) {
   
            startExecuteTime = query.getExecuteStartTime().atStartOfDay();
            endExecuteTime = query.getExecuteStartTime().atTime(23, 59, 59);
        }
       //查询需要导出的数据,用list集合接收
        List<RuleVerifyRecordEntity> recordList = ruleVerifyRecordMapper.selectList(Wrappers.<RuleVerifyRecordEntity>lambdaQuery().
                // 关键字搜索
                and(StringUtils.isNotEmpty(query.getKeywords()), wrapper -> 
	          wrapper.like(RuleVerifyRecordEntity::getTableName, query.getKeywords()).
                        or().like(RuleVerifyRecordEntity::getTableRemark, query.getKeywords()).
                        or().like(RuleVerifyRecordEntity::getDatasourceName, query.getKeywords())
                )
                orderByDesc(RuleVerifyRecordEntity::getExecuteStartTime)
        );

        //1.导出excel数据
        if (ObjectUtils.equals(ExportTypeEnum.EXCEL.getValue(), query.getExportType())) {
   
            //隐藏“检验记录数据”这个sheet的第1行数据
            List<RowHeightColWidthModel> rowHeightColWidthList = new ArrayList<>();
            rowHeightColWidthList.add(RowHeightColWidthModel.createHideRowModel("检验记录数据", 1));
            //设置第二行第二列的行高列宽
            rowHeightColWidthList.add(RowHeightColWidthModel.createRowHeightColWidthModel("检验记录数据", 2,100.0f,2,100));
            //转换导出数据
            try (ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream())
                    .registerWriteHandler(new CustomVerticalCellStyleStrategy())
                    .registerWriteHandler(new CustomWidthStyleStrategy())
                    .registerWriteHandler(new CustomRowColHandler(rowHeightColWidthList)).build()) {
   
                //设置导出参数
                ExportUtil.setExportResponse(response, fileName);
                ExportHeader<RuleVerifyRecordEntity> exportHeader = ruleVerifyHead();
                List<List<String>> heads = exportHeader.getHeaders();
                WriteSheet schemaWriteSheet = EasyExcel.writerSheet("检验记录数据").head(heads).build();
                List<List<String>> list = Lists.newArrayList();
                if (!org.springframework.util.CollectionUtils.isEmpty(recordList)) {
   
                    //依次填充字段值
                    for (RuleVerifyRecordEntity record : recordList) {
   
                        List<String> values = Lists.newArrayList();
                        values.add(record.getTableName());
                        values.add(StringUtils.join(record.getRuleStrengthCount(), "/", record.getRuleWeekCount()));
                        values.add(ObjectUtils.isNotEmpty(record.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值