先交代下业务背景,做的是问卷调研的答卷导出,每一个人答卷设置一个sheet,
一般的Excel导出是按单个sheet的最大行数(默认65536 )为基数,超过这个基数后再分一个sheet。
对数据的处理以 List<List<T>>格式操作的 简单来说就是多取一层list也就多一层循环,主要方法有以下两个。
//填充excel
public void fillExcelDataExam(int index, Row row,int getList)
{
//lists --> List<List<T>>
List<T> ts = lists.get(getList);
int startNo = index * sheetSize;
int endNo = Math.min(startNo + sheetSize, ts.size());
for (int i = startNo; i < endNo; i++)
{
row = sheet.createRow(i + 1 - startNo);
// 得到导出对象.
T vo = (T) ts.get(i);