通过界面 按钮点击导出数据。
利用springmvc 后端代码
工具类----list表示要导出的数据集合、titlemap是表头、title表示导出时的文件名
public static void creatExcel(List<?> list,Map<String, String> titlemap,String title,HttpServletResponse response){
//
HSSFWorkbook workbook=new HSSFWorkbook();
//创建表格
HSSFSheet sheet=workbook.createSheet();
//
HSSFRow titleRow = sheet.createRow(0);
Set<String> key=titlemap.keySet();
int k=0;
//设置表头
for (String cell : key) {
HSSFCell textcell = titleRow.createCell(k);
textcell.setCellValue(titlemap.get(cell));
k++;
}
try {
int i=1;
//将集合对象循环取出插入到excel中
for (Object obj : list) {
HSSFRow textRow = sheet.createRow(i);
int j=0;
for (String entry:titlemap.keySet()) {
String method = "get" + entry;
//利用反射获取对象的值
Method m = obj.getClass().getMethod(method, null);
String value = m.invoke(obj, null).toString();
HSSFCell textcell = textRow.createCell(j);
textcell.setCellValue(value);
j++;
}
i++;
}
UUID uuid = UUID.randomUUID();
String filedisplay = URLEncoder.encode(title+".xls","utf-8");
//web项目,1、设置下载框的弹出(设置response相关参数);2、通过httpservletresponse.getOutputStream()获取
//设置下载弹框,设置下载文件名
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename="+filedisplay);
OutputStream out = response.getOutputStream();
workbook.write(out);
out.close();
}
catch (Exception e) {
e.printStackTrace();
}
}
前台效果
excel内容展示
excel格式字体大小都可以通过java设置,具体还需要进一步学习。