1.单sheet页的导出 GradeNoActivityStudentsExport 为导出的model对象 我用的是注解的方式
@ExcelTarget("GradeNoActivityStudentsExport")
public class GradeNoActivityStudentsExport {
/**
* 学生ID
*/
@Excel(name = "学生ID", height = 15, width = 30, isImportField = "true_st")
private String kStudentNo;
/**
* 学生姓名
*/
@Excel(name = "姓名", height = 15, width = 30, isImportField = "true_st")
private String kStudentName;
/**
* 行政班
*/
@Excel(name = "班级", height = 15, width = 30, isImportField = "true_st")
private String kClassesName;
String title = "无活动学生名单";
String sheetName = "无活动学生名单";
Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(title, sheetName),
GradeNoActivityStudentsExport.class, StudentResList);
// 导出excel
SpringBootFileDownloadUtil.exportExcel(workbook, sheetName + ".xls", response);
public static void exportExcel(Workbook workbook, String fileName, HttpServletResponse response)
{
ServletOutputStream out = null;
try
{
out = response.getOutputStream();
fileName = URLEncoder.encode(fileName, "UTF-8");
response.setCharacterEncoding("UTF-8");
response.setContentType("application/msexcel");
response.addHeader("Content-Disposition", "attachment;filename=" + fileName);
workbook.write(out);
}
catch (Exception e)
{
LOGGER.error("excel导出异常", e);
}
finally
{
CloseUtil.closeQuietly(out);
CloseUtil.closeQuietly(workbook);
}
}
2.多sheet页的导出 ChoiceCourseExport同理为导出模板对象 最后对workbood进行流化
List<Map<String, Object>> sheetsList = new ArrayList<>() ;
for (Map.Entry<String,Object> map : StudentMap.entrySet()) {
Map dataMap = new HashMap<>();
ExportParams params = new ExportParams() ;
params.setSheetName(map.getKey()); ;
dataMap.put("title",params) ;
dataMap.put("entity",ChoiceCourseExport.class) ;
dataMap.put("data",map.getValue()) ;
sheetsList.add(dataMap);
}
String sheetName = "学生选课结果";
Workbook workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.HSSF) ;