导出百万条数据时,通过POI导出到Excel基本上是无解了,此时可以选择导出为csv格式,csv类似于文本文档,但是可以使用Excel或者WPS打开。
String[] tableOne = {"A","B","C","D","E"};
String fileName = fid+".csv";
ScrollableResults scRes = null;
try(BufferedWriter out = new BufferedWriter(new FileWriter(temp+fileName))
{
out.write(String.join(",", tableOne));
List<Data> datas = getData();
for(Data d : datas){
out.newLine();
out.write(parseData(d))
}
}若此时百万条数据都是在数据库,则不宜一次性读取完成,可以使用JDBC的逐条读取,使用Hibernate时,可以使用ScrollableResults,Hibernate也是对JDBC封装了一下,同一个原理。
try ( ScrollableResults scrollableResults = session.createQuery(
"select p " +
"from Person p " +
"where p.name like :name" )
.setParameter( "name", "J%" )
.scroll()
) {
while(scrollableResults.next()) {
Person person = (Person) scrollableResults.get()[0];
process(person);
}
}注意,数据一定要进行排序,否则会出现意想不到的问题。另外由于导出数据过多,WPS或者Excel可能看不完(WPS只能看到79万左右),最好分工作簿导出
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。