SpringBoot+easypoi实现数据的Excel导出

本文实例为大家分享了SpringBoot+easypoi实现数据的Excel导出的具体代码,供大家参考,具体内容如下

maven

<dependency>
      <groupId>cn.afterturn</groupId>
     <artifactId>easypoi-spring-boot-starter</artifactId>
     <version>4.1.0</version>
</dependency>

Controller层

// 接口不需要返回值
@RequestMapping(value = "/export-activity-data")
public void exportActivityData(@RequestParam String activityType,
                                   @RequestParam String activityState,
                                   @RequestParam String queryValue,
                                   @RequestParam String levelValue,
                                   @RequestParam String startTime,
                                   @RequestParam String endTime, HttpServletResponse response) {
        try {
            manageService.exportActivityData(TFActivityQueryParam.builder()
                    .activityState(activityState)
                    .activityType(activityType)
                    .queryValue(queryValue)
                    .levelValue(levelValue)
                    .startTime("".equals(endTime) ? null : new Date(DateTime.parse(startTime).getMillis()))
                    .endTime("".equals(endTime) ? null : new Date(DateTime.parse(endTime).getMillis())).build(), response);
        } catch (IOException e) {
           log.info( "导出失败", e);
        }
    }

service层

public void exportActivityData(TFActivityQueryParam param, HttpServletResponse response) throws IOException {
        response.setCharacterEncoding("UTF-8");
        response.setHeader("content-Type", "application/vnd.ms-excel");
        response.setHeader("Content-Disposition",
                "attachment;filename=" + URLEncoder.encode("活动综合数据.xls", "UTF-8"));
        val out = response.getOutputStream();

        List<TFActivityQueryResult> tfActivityList = getTFActivityList(param);
        List<TFActivityQueryResultExportDto> exportDtoList = new ArrayList<>();
        tfActivityList.forEach(activity -> {
            TFActivityQueryResultExportDto convert = TFActivityQueryResultExportDto.convert(activity);
            if (activity.getLevelType().equals("0")) {
                convert.setAffiliation("云南省");
            } else {
                EparchyCode eparchyCode = getEparchyCodeList().stream()
                        .filter(code -> code.getEparchyCode().equals(activity.getEparchyCode()))
                        .collect(Collectors.toList()).get(0);
                convert.setAffiliation(eparchyCode.getEparchyShortName());
            }
            exportDtoList.add(convert);
        });

        Workbook workbook = ExcelExportUtil.exportExcel(
                new ExportParams("活动综合数据", "活动"), TFActivityQueryResultExportDto.class, exportDtoList);
        log.info("workbook: {}", workbook);
        workbook.write(out);
        out.close();
 }

数据bean

public class TFActivityQueryResultExportDto {

    @Excel(name = "活动编码", width = 20)
    private String activityCode;
    @Excel(name = "活动名称", width = 20)
    private String activityName;
    @Excel(name = "活动标题", width = 20)
    private String activityTitle;
    @Excel(name = "归属", width = 20)
    private String affiliation;
    @Excel(name = "活动类型", width = 20)
    private String activityType;
    @Excel(name = "活动时间", width = 30)
    private String activityTime;
    @Excel(name = "活动状态", width = 20)
    private String activityState;
    @Excel(name = "备注", width = 30)
    private String remark;

    @Excel(name = "创建时间", width = 30)
    private String timeCreate;
    @Excel(name = "最新操作人", width = 30)
    private String operatorName;
    @Excel(name = "更新时间", width = 30)
    private String timeUpdate;

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Springboot实现导入导出Excel的方法

    目录 一.添加poi的maven依赖 二.自定义注解(Excel属性标题.位置等) 三.CustomExcelUtils编写 四.定义导出实体类 五.Controller层代码编写 一.添加poi的maven依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.13</version> </d

  • Springboot POI导出Excel(浏览器)

    本文实例为大家分享了Springboot POI导出Excel的具体代码,供大家参考,具体内容如下 需求:页面根据查询条件导出(浏览器) 由于本次导出数据量较大,这里采用XSSFWorkbook多线程进行导出,注:XSSFWorkbook导出excel文件结尾为:".xlsx". 导出不需要返回,如有返回则会报异常! //Controller @RequestMapping("/stateExport") public void stateExport(HttpSe

  • SpringBoot实现Excel读取的实例教程

    前言 这是本人写的一个SpringBoot对Excel读取的方法,实测能用,待提升的地方有很多,有不足之处请多多指点. Excel2003版(后缀为.xls)最大行数是65536行,最大列数是256列. Excel2007以上的版本(后缀为.xlsx)最大行数是1048576行,最大列数是16384列. 提供2种方法读取: 1.根据指定的开始和结束行数读取返回结果,结果格式为List<Map<String, Object>> 2.根据指定的开始和结束行数读取返回结果,结果格式为Li

  • SpringBoot整合POI导出通用Excel的方法示例

    一.准备工作 1.pom依赖 在pom.xml中加入POI的依赖 <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.11-beta1</version> </dependency> <dependency> <groupId>org.apache.poi

  • SpringBoot集成EasyExcel实现Excel导入的方法

    第一次正式的写文章进行分享,如果文章中有什么问题,欢迎大家在文末的群内反馈. 一.背景 为什么会用Easyexcel来做Excel上传 平时项目中经常使用EasyExcel从本地读取Excel中的数据,还有一个前端页面对需要处理的数据进行一些配置(如:Excel所在的文件夹,Excel的文件名,以及Sheet列名.处理数据需要的某些参数),由于每次都是读取的本地的文件,我就在想,如果某一天需要通过前端上传excel给我,让我来进行处理我又应该怎么办呢?我怎么才能在尽量少修改代码的前提下实现这个功

  • SpringBoot内存数据导出成Excel的实现方法

    前言 这是本人写的一个SpringBoot对Excel写入的方法,实测能用,待提升的地方有很多,有不足之处请多多指点. Excel2003版(后缀为.xls)最大行数是65536行,最大列数是256列. Excel2007以上的版本(后缀为.xlsx)最大行数是1048576行,最大列数是16384列. 若数据量超出行数,需要进行脚页的控制,这一点没做,因为一般100W行已够用. 提供3种方法写入: 1.根据给定的实体类列List和列名数组arr[]进行Excel写入 2.根据给定的List和k

  • 解决springboot 多线程使用MultipartFile读取excel文件内容报错问题

    springboot项目开启多线程 启动类加注解开启 @EnableAsync,实现类方法加注解 @Async 前端页面 报错信息 java.io.FileNotFoundException: C:\Users\dongao\AppData\Local\Temp\tomcat.1255209411477782290.8051\work\Tomcat\localhost\ROOT\upload_7d7b99e5_38da_4a03_93e0_bff20cb48022_00000000.tmp (系

  • SpringBoot读取excel表格的示例代码

    SpringBoot读取excel表格 共同探讨,向各位大佬学习 走向CEO,迎娶白富美 pom.xml依赖 <!--springboot核心依赖--> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</vers

  • 在SpringBoot: SpringBoot里面创建导出Excel的接口教程

    在Web项目中,难免需要导出Excel这样的功能,后端接口怎么实现呢,Controller代码在下面,复制到项目的Controller中即可使用: 首先加入Excel的依赖,本例中我们用apache的poi: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dep

  • SpringBoot中使用JeecgBoot的Autopoi导出Excel的方法步骤

    说到导出 Excel,我们首先会想到 poi.jsxl 等,使用这些工具会显得笨重,学习难度大.今天学习使用 JeecgBoot 中的 Autopoi 导出 Excel,底层基于 easypoi,使用简单,还支持数据字典方式 一.开发前戏 1.引入 maven 依赖 <!-- AutoPoi Excel工具类--> <dependency> <groupId>org.jeecgframework</groupId> <artifactId>aut

  • SpringBoot整合EasyExcel实现文件导入导出

    准备工作 注意:点击查看官网Demo 1. 引入pom依赖 <!--easyExcel--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> </dependency> 2. 实现功能 结合Vue前端,实现浏览器页面直接导出日志文件 实现文件的导入 Excel文件下载 3. 日志实体类 实体类里有自定义转换器:用于

  • 基于SpringBoot框架管理Excel和PDF文件类型

    一.文档类型简介 1.Excel文档 Excel一款电子表格软件.直观的界面.出色的计算功能和图表工具,在系统开发中,经常用来把数据转存到Excel文件,或者Excel数据导入系统中,这就涉及数据转换问题. 2.PDF文档 PDF是可移植文档格式,是一种电子文件格式,具有许多其他电子文档格式无法相比的优点.PDF文件格式可以将文字.字型.格式.颜色及独立于设备和分辨率的图形图像等封装在一个文件中.该格式文件还可以包含超文本链接.声音和动态影像等电子信息,支持特长文件,集成度和安全可靠性都较高.

  • SpringBoot中EasyExcel实现Excel文件的导入导出

    前言 在我们日常的开发过程中经常会使用Excel文件的形式来批量地上传下载系统数据,我们最常用的工具是Apache poi,但是如果数据到底上百万时,将会造成内存溢出的问题,那么我们怎么去实现百万数据批量导入导出. 正文 Easyexcel Easyexcel 是阿里巴巴的开源项目,用来优化Excel文件处理过程: poi消耗内存严重:Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的

  • 使用Springboot+poi上传并处理百万级数据EXCEL

    1 Excel上传 针对Excel的上传,采用的是比较常规的方法,其实和文件上传是相同的.具体源码如下: @PostMapping(value = "", consumes = "multipart/*", headers = "content-type=multipart/form-data") public Map<String, Object> addBlacklist( @RequestParam("file&quo

  • SpringBoot实现Excel文件批量上传导入数据库

    Spring boot + Spring data jpa + Thymeleaf 批量插入 + POI读取 + 文件上传 pom.xml: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <versi

随机推荐