首页
开源软件
问答
博客
翻译
资讯
Gitee
众包
活动
专区
源创会
高手问答
开源访谈
周刊
公司开源导航页
登录
注册
首页
资讯
动弹
专区
问答
GOTC2023
活动
开源活动
开源创新大赛
软件库
Tool
博客
Gitee
首页
资讯
动弹
专区
问答
GOTC2023
活动
开源活动
开源创新大赛
软件库
Tool
博客
Gitee
OSCHINA 小程序 ——
关注技术领域的头条文章
聚合全网技术文章,根据你的阅读喜好进行个性推荐
登录
注册
基于 POI 封装 ExcelUtil 精简的 Excel 导入导出
注 本文是使用 org.apache.poi 进行一次简单的封装,适用于大部分 excel 导入导出功能。过程中可能会用到反射,如若有对于性能有极致强迫症的同学,看看就好。 序 由于 poi 本身只是针对于 excel 等office软件的一...
作者:
yzChen233
基于 POI 封装 ExcelUtil 精简的 Excel 导入导出
分享
复制链接
README badge(
)
社交分享
微信
QQ
微博
yzChen233
2018/06/06 17:40
引用来自“Kuangcp”的评论
不开源的么...
不好意思,现在才看到这条评论。代码就在文末的“demo下载”
回复
举报
Kuangcp
2017/10/04 13:25
list这么骚,泛型能写俩进去?
回复
举报
Kuangcp
2017/10/04 13:24
不开源的么...
回复
举报
yzChen233
2017/07/30 09:50
可以自己扩展下,加个入参,加个if就行
回复
举报
开源老码农
2017/07/30 04:32
能不能指定导入某个 sheet?
回复
举报
黑狗
2017/05/29 17:37
引用来自“生吃番茄酱”的评论
引用来自“黑狗”的评论
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案
引用来自“黑狗”的评论
在之前的基础上,如果有数据库操作,可以多线程写数据,也可以考虑读写分离、批量提交sql、屏蔽事务,等等常用的报表手段
引用来自“倚楼听风雨_”的评论
👍
但是加入多线程,会不会把事情复杂化了。。
只是一个思路 具体情况还是要具体分析
多线程,数据顺序怎么控制
excel导入没有碰到还有事务顺序的情况。。。有顺序的你放到一个线程里啊
回复
举报
Aschrius
2017/05/24 07:32
引用来自“黑狗”的评论
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案
引用来自“黑狗”的评论
在之前的基础上,如果有数据库操作,可以多线程写数据,也可以考虑读写分离、批量提交sql、屏蔽事务,等等常用的报表手段
引用来自“倚楼听风雨_”的评论
👍
但是加入多线程,会不会把事情复杂化了。。
只是一个思路 具体情况还是要具体分析
多线程,数据顺序怎么控制
回复
举报
海盐架构笔记
2017/05/23 20:35
试试看
回复
举报
傻傻躺着
2017/05/23 17:22
可以考虑实现根据用户选择的列来动态导出数据,
回复
举报
黑狗
2017/05/23 16:08
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案
引用来自“黑狗”的评论
在之前的基础上,如果有数据库操作,可以多线程写数据,也可以考虑读写分离、批量提交sql、屏蔽事务,等等常用的报表手段
引用来自“倚楼听风雨_”的评论
👍
但是加入多线程,会不会把事情复杂化了。。
只是一个思路 具体情况还是要具体分析
回复
举报
yzChen233
2017/05/23 14:03
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案
引用来自“黑狗”的评论
在之前的基础上,如果有数据库操作,可以多线程写数据,也可以考虑读写分离、批量提交sql、屏蔽事务,等等常用的报表手段
👍
但是加入多线程,会不会把事情复杂化了。。
回复
举报
yzChen233
2017/05/23 13:58
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案
引用来自“倚楼听风雨_”的评论
没试过这么大量的。
我个人理解的话,首先,excel肯定是要分 sheet 的,因为目前我看到的 poi 里面返回一个 sheet 最多行数是 int 的最大值。这样的话,也就是每 6万 行数据进行处理,这个就好说了。
如果说 excel 分 sheet 比较麻烦,个人建议还是用 txt、xml、json 更好,行级读取即可。
引用来自“慢慢成长”的评论
额,整型最大值不是 2147483647 么,,,看了下 xlsx的单sheet最大行应该是 1048576,有些特殊情况就是很暴力就是excel格式,还大量数据,
刚才试了一下,xls 格式的,只能存储 65535 行, xlsx 格式可以存储更多,应该是你说的 1048576。
我的示例代码,导出只能导 65535 行记录,估计是 xls 格式的输出原因,导入的话,如果是 xlsx 格式,是可以读取更多的。
像10w多条数据的话,应该也不算多,一定要特殊处理的话,我建议类似做分页一样,传入 currPage、pageSize 进行返回 list 集合。
回复
举报
黑狗
2017/05/23 13:56
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案
在之前的基础上,如果有数据库操作,可以多线程写数据,也可以考虑读写分离、批量提交sql、屏蔽事务,等等常用的报表手段
回复
举报
黑狗
2017/05/23 13:52
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案
用不着什么方案 原生的poi api足够了 这么多行你肯定不需要实时,不实时你跑线程执行,异步定时更新处理进度即可。分两个线程,一个线程只管读,读了放buffer,另一个线程从buffer里取,一般读的速度都比你处理的速度快,buffer设置固定的size就是了。api读取数据本来就是一次性只读一部分数据的。
回复
举报
黑狗
2017/05/23 13:49
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
慢慢成长
2017/05/23 13:40
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案
引用来自“倚楼听风雨_”的评论
没试过这么大量的。
我个人理解的话,首先,excel肯定是要分 sheet 的,因为目前我看到的 poi 里面返回一个 sheet 最多行数是 int 的最大值。这样的话,也就是每 6万 行数据进行处理,这个就好说了。
如果说 excel 分 sheet 比较麻烦,个人建议还是用 txt、xml、json 更好,行级读取即可。
额,整型最大值不是 2147483647 么,,,看了下 xlsx的单sheet最大行应该是 1048576,有些特殊情况就是很暴力就是excel格式,还大量数据,
回复
举报
yzChen233
2017/05/23 10:46
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案
没试过这么大量的。
我个人理解的话,首先,excel肯定是要分 sheet 的,因为目前我看到的 poi 里面返回一个 sheet 最多行数是 int 的最大值。这样的话,也就是每 6万 行数据进行处理,这个就好说了。
如果说 excel 分 sheet 比较麻烦,个人建议还是用 txt、xml、json 更好,行级读取即可。
回复
举报
yzChen233
2017/05/23 10:42
引用来自“lx19990999”的评论
跪键盘.com ?
被发现了 :trollface:
回复
举报
yzChen233
2017/05/23 10:41
该评论暂时无法显示,详情咨询 QQ 群:
点此入群
慢慢成长
2017/05/23 10:32
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案
回复
举报
networkexception
2017/05/23 09:56
跪键盘.com ?
回复
举报
milin
2017/05/23 09:53
为什么不利用注解呢?导入导出注解最简单
回复
举报
回复 @
{{ emoji.type }}
{{emojiItem.symbol}}
评论用户
推荐博客
Alluxio跨集群同步机制的设计与实现
Alluxio 官方
·
今天 11:59
0 评论
视频编辑场景下的文字模版技术方案
百度Geek说
·
今天 10:56
0 评论
什么是 LuaJIT?为什么 Apache APISIX 选择了 LuaJIT?
API7.ai 技术团队
·
今天 10:54
0 评论
DolphinDB 流计算应用:引擎级联监测门禁异常状态
DolphinDB智臾科技
·
今天 10:51
0 评论
一文简单了解并构建DockerFile
GreatSQL
·
今天 09:33
0 评论
当你对 redis 说你中意的女孩是 Mia
京东云开发者
·
今天 09:07
0 评论
10 款开源的在线游戏,点开就能玩的那种
削微寒
·
今天 09:06
0 评论
测试用例设计指南
京东云开发者
·
今天 09:06
0 评论
扫一扫,原来这么简单
HMS Core
·
今天 08:48
0 评论
你可能不那么知道的Tomcat生命周期管理 | 博学谷狂野架构师
博学谷狂野架构师
·
昨天 15:29
0 评论
删除一条评论
评论删除后,数据将无法恢复
取消
确定
©OSCHINA(OSChina.NET)
工信部
开源软件推进联盟
指定官方社区
社区规范
深圳市奥思网络科技有限公司版权所有
粤ICP备12009483号
顶部
引用来自“Kuangcp”的评论
不开源的么...引用来自“生吃番茄酱”的评论
引用来自“黑狗”的评论
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案引用来自“黑狗”的评论
在之前的基础上,如果有数据库操作,可以多线程写数据,也可以考虑读写分离、批量提交sql、屏蔽事务,等等常用的报表手段引用来自“倚楼听风雨_”的评论
👍但是加入多线程,会不会把事情复杂化了。。
引用来自“黑狗”的评论
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案引用来自“黑狗”的评论
在之前的基础上,如果有数据库操作,可以多线程写数据,也可以考虑读写分离、批量提交sql、屏蔽事务,等等常用的报表手段引用来自“倚楼听风雨_”的评论
👍但是加入多线程,会不会把事情复杂化了。。
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案引用来自“黑狗”的评论
在之前的基础上,如果有数据库操作,可以多线程写数据,也可以考虑读写分离、批量提交sql、屏蔽事务,等等常用的报表手段引用来自“倚楼听风雨_”的评论
👍但是加入多线程,会不会把事情复杂化了。。
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案引用来自“黑狗”的评论
在之前的基础上,如果有数据库操作,可以多线程写数据,也可以考虑读写分离、批量提交sql、屏蔽事务,等等常用的报表手段但是加入多线程,会不会把事情复杂化了。。
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案引用来自“倚楼听风雨_”的评论
没试过这么大量的。我个人理解的话,首先,excel肯定是要分 sheet 的,因为目前我看到的 poi 里面返回一个 sheet 最多行数是 int 的最大值。这样的话,也就是每 6万 行数据进行处理,这个就好说了。
如果说 excel 分 sheet 比较麻烦,个人建议还是用 txt、xml、json 更好,行级读取即可。
引用来自“慢慢成长”的评论
额,整型最大值不是 2147483647 么,,,看了下 xlsx的单sheet最大行应该是 1048576,有些特殊情况就是很暴力就是excel格式,还大量数据,我的示例代码,导出只能导 65535 行记录,估计是 xls 格式的输出原因,导入的话,如果是 xlsx 格式,是可以读取更多的。
像10w多条数据的话,应该也不算多,一定要特殊处理的话,我建议类似做分页一样,传入 currPage、pageSize 进行返回 list 集合。
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案引用来自“倚楼听风雨_”的评论
没试过这么大量的。我个人理解的话,首先,excel肯定是要分 sheet 的,因为目前我看到的 poi 里面返回一个 sheet 最多行数是 int 的最大值。这样的话,也就是每 6万 行数据进行处理,这个就好说了。
如果说 excel 分 sheet 比较麻烦,个人建议还是用 txt、xml、json 更好,行级读取即可。
引用来自“慢慢成长”的评论
百万行(甚至可能更多)excel导入数据库,有没有什么好的方案我个人理解的话,首先,excel肯定是要分 sheet 的,因为目前我看到的 poi 里面返回一个 sheet 最多行数是 int 的最大值。这样的话,也就是每 6万 行数据进行处理,这个就好说了。
如果说 excel 分 sheet 比较麻烦,个人建议还是用 txt、xml、json 更好,行级读取即可。
引用来自“lx19990999”的评论
跪键盘.com ?