java如何避免多次解析同一个excel

南北桥 发布于 2015/10/22 18:31
阅读 359
收藏 0

RT

1 上传excel,首先要对其中一条数据进行检测,只是一个字段检测 然后啥也不干

2 真正的开始处理excel .........

怎么做到避免需要多次解析一个xls/xlsx

加载中
1
南北桥
南北桥
没明白,请教
1
魔仙剑痴
每解析一次xsl文件,就保存他的md5值,再次解析它之前先判断他是否已经解析过了。即是否在md5库中。
0
南北桥
南北桥
解析一次,直接将数据保存在 内存对象里面,使用直接从对象里面取
 但是并发处理的时候不就瞎了
0
zigzagroad
zigzagroad
上传并解析内容:解析后数据对象(如 字符串数组)使用集合类(如 List)缓存起来; 后面的“数据合法性判断、数据保存“等操作都是针对集合类缓存进行的。
南北桥
南北桥
缓存的话爬并发啊
zigzagroad
zigzagroad
文件大小 也是一种控制恶意行为的方式。
zigzagroad
zigzagroad
不过这种方式不适合 Excel数据行 较多的情况;不过正常情况下不会上传有太多数据的Excel文件;如果数据行实在太多,在解析Excel时可以控制行数量,太多数据行时直接返回报错信息(只支持上传最大xx行的数据文件),以避免恶意用户的非法行为。
0
Altman
Altman
计算文件hash
0
zigzagroad
zigzagroad
那在上传前加验证码
zigzagroad
zigzagroad
是放在各自的内存空间,不能是共享空间了。比如放在 以当前用户Id作为主键的唯一实例的Map中 或者 当前用户的session中。
南北桥
南北桥
我的意思是担心存内存的时候 第二个人也传一份 内存对象就被替换了
0
朱宏青
朱宏青

一般情况很难 因为excel稍微改动一下就变了....是真的难

0
南北桥
南北桥
简单粗暴点存库吧,有时间试试大家介绍的方式 感激各位...
返回顶部
顶部