使用MyRowHandler处理类来处理大量数据的导出:
实现RowHandler的方法:
public class XXXX(实现层方法名) implements RowHandler {
private HSSFWorkbook wb;
private HSSFSheet sheet ;
private HSSFRow row;
private HSSFCell cell;
private int dataNum=0;
private int rowStart = 1;
private int rowI = 0;
public void setWb(HSSFWorkbook wb) {
this.wb = wb;
setSheet();
//处理需要导出数据的业务
List<T> lists = xxxxx(处理数据方法);
handleRow(lists);
}
@Override
public void handleRow(Object arg0){
dataNum++;
if(dataNum%50000==0){
//每5万条记录分页
setSheet();
}
//在这里处理逻辑,插入数据到excel
Map map = (Map) arg0;