通過界面 按鈕點擊導出數據。
利用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設置,具體還需要進一步學習。