java项目中的一个excel导入功能,用户提供的excel文件的数据格式很混乱,例如时间字段有的格式是文本(yyyy-MM-dd),还有yyyyMMdd格式的,还有数值型的,在使用poi解析后处理起来很麻烦,而且不确定用户提供的数据还会出现其他错误格式的数据。对于这种情况,用户应该提供一份数据格式基本正确的文件,但是是不是对于用户来说不应该要求呢?还有求问,怎么去设计一个优雅的数据校验和导入的方案?
Excel中有500W数据,使用poi的sax模式逐行读取,然后批量插入到数据库。 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241123/048811fade46dadbbbfcfb0599da4b32.png) 测试代码未改动,仅设置JVM内存参数。 第一次不改动JVM,导入500W数据到数据库 耗时1分51秒 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241123/d52c20f1cf28175c78dd749eefec4f1c.png) 内存占用如下 "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241123/3ce30985c5a56f962771da1c59b0eee5.png) 第二次JVM内存最大、最小参数都设置为500M,此时耗时1分43秒,内存占用更是平均只有140MB!! "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241123/3ff491e528116462f3e2ae9c42faf56b.png) "image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20241123/908e209745dd3840c5044026a918524f.png) 我已经凌乱了,到底是为什么呢?JVM内存设置的小了,占用的内存也跟着小了,而且时间上还相差无几,导入到数据库的效果也是一样成功。。
Java 如何实现用 POI 输出 Excel 的时候,设置背景 n 行有色,n 行无色,按顺序循环下去,怎么搞呢?
Java POI 打开大文件时太慢了有没有优化的办法 打开一个大文件要很久,有没有优化的办法
如何在Excel里创建表单控件? 如何使用POI在Excel里创建表单控件呢,如果POI不行的话,是否有其他的替代方案呢?
使用Java如何给Excel文件的首行设置筛选? 我尝试用POI去实现,但是没能成功,导出前后没有变化