Java poi导入导出

请问java导入数据,如果用多线程的话,如何保证导入顺序按excel的顺序?
导出大量数据时,分页查循环写入workbook已经放入workbook里的数据还在内存中吗?会导致内存溢出吗?

这是两个问题。

请问java导入数据,如果用多线程的话,如何保证导入顺序按excel的顺序?

假设你有 1.xlsx,2.xlsx,3.xlsx 等文件要导入,你首先需要记录你的安排,也就是:

  1. 将所有要导入的文件名列出来
  2. 对文件名排序,放在 List 里面,等下导入的时候一个一个来。

那么对每个文件你可以用独立的线程执行读取,注意只是读取到内存来,而不要写出。当所有的文件都读取完毕,然后按照文件名的顺序,一个一个写出到数据库或者什么其他地方。这个顺序就不会乱了。

导出大量数据时,分页查循环写入workbook已经放入workbook里的数据还在内存中吗?会导致内存溢出吗?

只要你没有将 workbook 关闭,它就一直在内存中。想要控制内存使用,就要控制同时打开的 workbook 数量。

【Java+EasyExcel实现文件导入导出,导入导出如此简单】
建议观看此文章
https://blog.csdn.net/weixin_45526437/article/details/122021373