springboot 使用ExcelUtil实现文件导入、导出、模板下载

这篇具有很好参考价值的文章主要介绍了springboot 使用ExcelUtil实现文件导入、导出、模板下载。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、Excel 模板下载

controller层

1.1、使用Swagger 注解,表示该接口方法用于 Excel 模板下载操作

1.2、定义接口方法,接受一个 HttpServletResponse 对象作为参数,用于响应生成的 Excel 文件

1.3、创建了一个 ExcelUtil 对象,并指定了数据模型类,(ExcelUtil 是一个自定义的工具类,用于处理 Excel 文件的导入和导出操作)

1.4、调用 ExcelUtil 的 importTemplateExcel 方法,将 Excel 模板文件导出到 HttpServletResponse 对象中。该方法的第一个参数是 HttpServletResponse 对象,用于响应生成的 Excel 文件;第二个参数是导出的 Excel 文件名,这里设置为 "用能数据模板结构"

@ApiOperation(value = "Excel模板下载")
@PostMapping("/importDownload")
public void importExcel(HttpServletResponse response) throws IOException {
    ExcelUtil<DownloadPowerInfoExcelTemplate> util = new ExcelUtil<>(DownloadPowerInfoExcelTemplate.class);
    util.importTemplateExcel(response, "用能数据模板结构");
}

2、Excel表格导入 

controller层

2.1、使用 Swagger 注解的方法说明,表示该接口方法用于天然气消费结构的 Excel 导入操作

2.2、定义接口,接口接受一个 MultipartFile 对象作为参数,用于接收上传的 Excel 文件,并返回一个 Result<Boolean> 对象

  @ApiOperation(value = "用能数据Excel导入")
    @PostMapping("/importExcel ")
    public Result<Boolean> importExcel (MultipartFile file) throws Exception {
        ExcelUtil<DownloadPowerInfoExcelTemplate> util = new ExcelUtil<>(DownloadPowerInfoExcelTemplate.class);
        List<DownloadPowerInfoExcelTemplate> list = util.importExcel(file.getInputStream());
        return Result.success(service.importExcel(list));
    }

service层

2.3、通过 sqlSessionFactoryopenSession 方法进行初始化。ExecutorType.BATCH 表示使用批量执行方式,false 表示不自动提交事务

2.4、通过 sqlSession 获取一个 PowerNetworkMapper 的实例,用于执行数据库操作

2.5、调用 template 对象的 converToPowerNetwork 方法将其转换为 PowerNetwork 对象,并将转换后的结果赋值给 powerNetwork 变量

2.6、调用 mapper 对象的 insertPlant 方法将 powerNetwork 对象插入数据库中

2.7、调用 ExcelUtil 类的 printBatchCount 方法,将 sqlSession 的未执行的批处理语句刷新到数据库,并返回受影响的行数是否大于 0。如果插入成功并且受影响的行数大于 0,则返回 true,否则返回 false

Boolean importExcel(List<DownloadPowerNetworkExcelTemplate> list);

 @Override
    public Boolean importExcel(List<DownloadPowerNetworkExcelTemplate> list) {
        try (SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH, false)) {
            PowerNetworkMapper mapper = sqlSession.getMapper(PowerNetworkMapper.class);
            for (DownloadPowerNetworkExcelTemplate template : list) {
                PowerNetwork powerNetwork = template.converToPowerNetwork();
                mapper.insertPlant(powerNetwork);
            }
            return ExcelUtil.printBatchCount(sqlSession.flushStatements()) > 0;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }

3、Excel表格导出

controller层

3.1、入参:两个参数:response 是一个 HttpServletResponse 对象,用于响应导出的数据;request 是一个通过请求体传递的 QueryPlantInformationRequest 对象,包含导出列表所需的查询条件

3.2、判断开始时间和结束时间是否为空,整合入参的形式

3.3、调用 powerNetworkServicelist 方法,传入 request 对象作为参数,获取电力信息的列表信息,并将结果赋值给 list 变量

3.4、创建一个 ExcelUtil 实例,该实例用于导出 Excel 数据,调用 ExcelUtil 的 exportExcel 方法,将 dataList 中的数据导出为 Excel 文件,并使用 "电力网络" 作为文件名。导出的文件将通过 response 对象进行响应

 @ApiOperation(value = "导出列表")
    @PostMapping("/plantInfoExport")
    public void plantInfoExport(HttpServletResponse response, @RequestBody QueryPlantInformationRequest request) throws IOException {
        if (StringUtils.isNotEmpty(request.getStartTime())){
            String startTime = request.getStartTime().replace("-", "").replace("/", "");
            request.setStartTime(startTime);
        }
        if (StringUtils.isNotEmpty(request.getEndTime())) {
            String endTime = request.getEndTime().replace("-", "").replace("/", "");
            request.setEndTime(endTime);
        }
        List<PlantInformationResponse> list = service.list(request);
        if (CollectionUtil.isNotEmpty(list)) {
            List<PlantInfoExportResponse> dataList = new ArrayList<>();
            list.forEach(item -> dataList.add(item.coverToPlantInfoResponse()));
            ExcelUtil<PlantInfoExportResponse> util = new ExcelUtil<>(PlantInfoExportResponse.class);
            util.exportExcel(response, dataList, "电力信息");
        }
    }

文章来源地址https://www.toymoban.com/news/detail-700491.html

到了这里,关于springboot 使用ExcelUtil实现文件导入、导出、模板下载的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot中使用EasyExcel实现Excel 导入导出

    EasyExcel 是一款基于 Java 的简单易用的 Excel 文件操作工具。它提供了丰富的 API,可以方便地读取、写入和操作 Excel 文件,支持常见的 Excel 操作,如读取/写入单元格数据、合并单元格、设置样式、处理大数据量等。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将

    2024年02月12日
    浏览(42)
  • 导出excel,导出模板Excel(双工作蒲)压缩文件导出(即下载文件)

    下面是文件表格和entity对象

    2024年02月12日
    浏览(22)
  • C#使用CsvHelper 实现csv文件导入导出功能

    一、CsvHelper 库 可通过nuget进行安装 二、封装导入导出方法  public class MyCsvHelper     {         public static bool WriteCsvT(ListT datas,string filePath= \\\"logs/TagData/tag.csv\\\")         {             try             {                 var currentPath = Directory.GetCurrentDirectory();                

    2024年02月11日
    浏览(32)
  • 使用POI和EasyExcel来实现excel文件的导入导出

    废话不多说咱们直接上干货!!!! 一.读取Excel表格 【1】使用POI读取excel表格中的数据 POI还可以操作我们这个word文档等等,他不仅仅只能弄Excel,而JXI只能操作excel 1.POI的结构,我们可以更具文件的类去选择 相关的对象我当前是使用的XLSX来操作的 HSSF - 提供读写Microsoft

    2024年02月05日
    浏览(26)
  • 后端:使用easyExcel实现解析Excel文件读取数据。前端:Excel模板下载、前端上传文件

            本篇是EasyExcel快速入门知识,讲解如何读取Excel文件,对Excel中错误信息如空字符、必填项为空、表格格式校验做到处理 ,并给出了实际项目中示例代码;为什么要使用easyexcel;原因是相比于poi,easyexcel更加轻量级,读取写入API方便,并且在工作中占用内存较小;

    2024年02月05日
    浏览(32)
  • 使用EasyExcel导入、根据模板下载(附前后端代码)

    使用以上导包如果报错 NoClassDefFoundError,可能需要引入cglib包 前端代码: : 由于前端type=\\\"file\\\"的样式固定,可以隐藏input,通过其他按钮点击触发上传,用户上传文件后input的值发生变化触发change事件调用ajax  后端代码: controller层接收  实现类: 这里用的是在本地下载文件

    2024年02月15日
    浏览(25)
  • SpringBoot实现Excel导入导出

    话不多说,直接上代码 依赖文档 找到pom文件,如下图所示 引入需要的依赖 导出写法: 导入写法: 已上就是导入导出

    2024年02月09日
    浏览(25)
  • SpringBoot实现Excel导入导出,简单好用

    POI是Java操作MicroOffice(如对Excel的导入导出)的一个插件。POI的全称是(Poor Obfuscation Implementation),POI官网地址是 http://poi.achache.org/index.html 。 EasyPoi对POI进行了优化 ,更加设计精巧,使用简单,接口丰富,扩展简单。EasyPOI的同类产品有Execel4J,Hutools等。EasyPoi官网地址是 h

    2024年02月11日
    浏览(24)
  • SpringBoot和Vue实现Excel导入导出

    hutool工具 hutool工具 浏览器格式 打开浏览器能下载Excel即成功。 3.1 测试: 通过postman测试,send之后返回true测试成功。 在Navicat刷新,可以看到新写入的数据。

    2024年03月17日
    浏览(43)
  • SpringBoot 集成 EasyExcel 3.x 优雅实现 Excel 导入导出

    EasyExcel 是一个基于 Java 的、快速、简洁、解决大文件内存溢出的 Excel 处理工具。它能让你在不用考虑性能、内存的等因素的情况下,快速完成 Excel 的读、写等功能。 EasyExcel文档地址: https://easyexcel.opensource.alibaba.com/ 引入依赖 简单导出 以导出用户信息为例,接下来手把手教

    2024年02月15日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包