將數據寫到EXCEL中並導出

通過界面 按鈕點擊導出數據。

利用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設置,具體還需要進一步學習。