java poi 导入导出excel简单实例源代码_SSM实战第二篇_POI导出Excel

79efa2eba45ca6a30c8a9dbbbf17883d.png

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

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

41ad6a57071e0d0543bc6ee40f12f255.png

实现思路:

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

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

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

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

7c83808dbc2a39acd5e88de35ea71a4d.png

当得到上面的实现思路时,其实已经几乎实现了一大半,接下来就是代码实现了。

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

3da2872ec38582ec451812d10fcba336.png
067aa3fa8f22f76ce1d60b99ff9a5a5b.png

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

b549a2bbd652988c455aa80753b40817.png
2c32d4e2afc99a64379f2e9afaf08255.png

3、其中ProductMapper的selectAll方法如下:

e0da1809d50323f239d0ad950dd10215.png
a807fa72fccc24f3271d506df0cd407e.png

4、而ExcelBeanUtil.manageProductList方法用于将获取的数据列表转化为上面所讲的List>代码如下:

3c347b1f91b29dbca696ec8cd5a7d82f.png

5、ExcelUtil.fillExcelSheetData方法,则是将最终获取到的List>格式的数据列表真正的填充到Excel中,得到最终的Excel -Workbook实例:

304738d16e9567a4540fd2fae400402d.png

6、最后,需要将得到的Workbook实例(其实就是一个Excel了)以流的形式同步写回浏览器。

796a5a08f56dc26be212645e594173df.png

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

d9344161c6a40a2c2b85f6c6ba1e4a48.png

8、最终,我们实现的效果如下所示:

dfdd5a9e769fe3166d7b6412f29a7583.png

9、若有相关问题,可以私信与我交流!

推荐阅读:

1、SSM实战第一篇_SSM的整合

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值