基于SpringBoot+POI实现的excel导入导出(教程)

createh55个月前 (02-01)技术教程48

各位朋友大家好,我是奋斗的小强001,本期更新的内容是:基于SpringBoot+POI实现的excel导入导出(适配+教程)。

我将以八期的内容对整个工具进行代码分析和说明,具体八期内容安排将在文末罗列。

介绍

项目中使用到了excel做导入和导出,网上查询了一些资料,没有找到一些合适的或者完成的,于是乎,利用空闲时间开发出一套完整的excel导入导出。

整个功能将会在本文发布后的八期内容里完成更新。会将导入导出的核心代码贴出来供大家参考,有些不足的地方,可供大家共同探讨优化。

因更新时间较长,内部部分代码比较陈旧。近期正在对内部功能代码进行优化升级。优化后的代码会以github等方式公开。

导入功能说明

目前最新的版本中 支持以下功能:

1.可以生成自定义数据模板

2.可以生成下拉数据格式模板(固定数据使用)

3.定义导入样式

4.自定义导入数据处理接收参数对象

5.多对象接收数据转换

6.固定数据,字典等格式数据翻译

7.参数转数据库主键翻译

8.自定义读取sheet

9.多线程读取excel数据(待实现)

10.通过注解方式自定义导入表头,表头排序

11.支持本功能导出的数据不做操作直接导入

导入操作流程

导出功能说明

1.支持导出自定义表头,表格样式
2.支持数据字典翻译
3.支持自定义数据合计计算
4.支持金额格式转换(千位分隔)
5.多线程导出(待实现)
6.支持导出复杂类型表头(目前仅支持二级合并表头)
7.支持自定义单元格合并

导出执行流程

导出即导入

导入即导入说明
导出的数据可以在不做任何修改的情况下即可导入到数据库中

工具性能测试结果展示


数据说明

以上表格数据表示使用该工具后大数据量分段写数据的性能

内存和时间的消耗均包含数据查询时间和写数据到数据库的时间

数据复杂程度:中等

测试数据总条数:231064

测试结果跟使用的环境有一定关系:本人测试使用的环境是win7+8G运行,jdk1.8

使用单线程测试

后期还会优化多线程版本,敬请期待。

写在最后

本文对导入和导出的整体功能做了个简单的说明,本期后的八期内容将分开对以上内容的核心代码进行分析,主要内容分布如下:

1. POI和HSSFWorkbook介绍

2. 导入实现的基本逻辑代码分析

3. 导入生成文件固定数据代码分析

4.导入数据对象接收数据处理

5.导出写数据的基本逻辑代码分析

6.导出动态处理计算和格式逻辑代码分析

7.自定义表头方式

8.导入导出生成文件流返回

自本文发布日期起开始更新,每周更新一期,每周日晚更新,欢迎围观。

欢迎大家阅读和探讨.有问题可以随时私信我,谢谢大家. 欢迎大家点赞和支持。

相关文章

java百万千万级别excel导出问题(导出慢和Out Of Memory内存溢出)

目录业务场景原因分析解决思路优化后效果实现代码DEMO业务场景由于很多业务需要导出数据库里的数据,一般我们导出的数据都是要给业务部门看的,他们也会拿到做一些数据统计,所以一般都是给他们导出Excel格...

地图搜索的商家信息怎么批量导出到Excel表格

小编查看了常用的百度地图、高德地图、360地图、腾讯地图、google地图都没有发现可以把搜索到的商户信息批量导出的功能,整理了几个常用的方法:1、手动复制粘贴(适用于少量需求业务)优点:不用任何工具...

Springboot+Easyexcel将数据写入模板文件并导出Excel

Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有...

MYSQL自动导出某表数据到EXCEL的方案

由于特殊要求,客户要求,将数据库中的某些数据,每天指定时间自动导出到指定位置。方便其它业务的使用。首先说下设计思路:因为需求比较简单,打算用MYSQL数据库的函数+事件功能完成。首先,定义各一个导出E...

数据如何转成html表格、pdf、xmind文件格式下载?

序言经常在一些报告业务场景,客户常常要求可以实现导出html、pdf、xmind格式的报告文件,生成pdf格式文件,网络上有很多开源的解决方案,但是生成html格式开源免费的解决方案很少,下面我给我大...

Excel导出,Excel模板导出Excel导入,Word模板导出神器-Easypoi

概述Easypoi 是码云上的一个开源项目。项目开发组织是Lemur开源。目前属于码云最有价值开源项目。Easypoi 是对poi的封装,其主打的功能就是容易,让一个没见接触过poi的人员 就可以方便...