基于SSM的POI导入导出Excel实战第二篇-导出EXCEL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于SSM的POI导入导出Excel实战第二篇-导出EXCEL相关的知识,希望对你有一定的参考价值。

业务需求:这里我以产品信息为例,用于POI导入导出Excel实战的操作对象

需求分析:我们要导出的数据格式比较简单,其实就是待导出的表(视图)的数据,如下图所示:
技术分享图片

实现思路:
A、会发现待导出的数据列表是一个矩阵式的格式,即二维的形式

B、其中的头部id name unit price stock 等字段field是固定不变的,将会充当excel的头部

C、以数据行的角度观察数据列表,会发现每一行每一列的值都是B所指的那些字段一一对应的取值value

D、由此可以得出这些数据组织是由每一行数据组成,而每一行数据是由 field-value 对组成的,而这即可让人联想到 map的映射格式。即每一行row由map构成,整个表/视图则由多行row组成,所以最终应输出的数据格式为:List<Map<key,value>>,如下图所示:

技术分享图片

有了上面的实现思路,其实我们已经实现了一大半!下面进入正文,阅读正文期间,如果有任何问题均可以加我QQ:1974544863 或者入群讨论技术:583522159。以下是我的公众号,感兴趣的童鞋可以关注(有干货分享以及项目实战分享哦!)
技术分享图片

好了,那我们就废话不多说,进入代码实战吧:

  1. 首先创建表product,并定义以下字段,同时自己在表里添加数据。并用mybatis逆向工程生成entity,mapper,mapper.xml文件
    技术分享图片

技术分享图片

  1. 然后创建ProductController,开发导出Excel的功能,该功能的思路其实就是上面分析出来的实现思路,在这些代码里均能得到体现
    技术分享图片

技术分享图片

  1. 其中ProductMapper的selectAll方法如下:
    技术分享图片

技术分享图片

  1. 而ExcelBeanUtil.manageProductList方法用于将获取的数据列表转化为上面所讲的List<Map<>>代码如下:
    技术分享图片

  2. ExcelUtil.fillExcelSheetData方法,则是将最终获取到的List<Map<>>格式的数据列表真正的填充到Excel中,得到最终的Excel -Workbook实例:
    技术分享图片

  3. 最后,需要将得到的Workbook实例(其实就是一个Excel了)以流的形式同步写回浏览器:
    技术分享图片

  4. 其中,我们这里用到了sheetProductName跟excelProductName,顾名思义,分别为:下载的Excel中sheet的命名以及下载的Excel的名称。这两个属性是采用动态配置的方式配置为配置文件application.properties中的 如下所示:

技术分享图片

  1. 最终,我们实现的效果如下所示:

技术分享图片

好了,这就是我们POI实战第二篇:到处Excel,若有相关问题可以加上面我的个人联系方式咨询我!!!

以上是关于基于SSM的POI导入导出Excel实战第二篇-导出EXCEL的主要内容,如果未能解决你的问题,请参考以下文章

SSM+poi导入和导出

超级简单POI多sheet导出Excel实战

java代码实现导出Excel表格工具ssm框架mavenidea

c++

SpringBoot图文教程9—SpringBoot 导入导出 Excel 「Apache Poi」

一个基于POI的通用excel导入导出工具类的简单实现及使用方法