????????????????????????????????2????????????????????????????????С????????Excel?????????Excel???????????????????к????????????????????????????????????????????????poi??????
???????????????????????????“??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????“
??????????????????????????·????????????????????????£????????????????????
????1????????????????????????????????????????ajax????????Excel????????????????????????????????????????????????г???excel????????????????????????????????ajax??????????????????????????????????????????????????·??????????С??????ajax??????????????С???????????????????????
????2??????????form???submit??????????????£????????????????????????????????form????????????????????????????????????????????????????????????????о?????????????????????????????????????????????????????У?饗?漰????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????e????????????У?????????????jsp???д?????????????????????У??????????????????λС?????????iframe??????????????????????????????????????????д????????????????????????????????棩??
????3???????о???????????????????????????????????????e?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Excel?????response????????????????????????????????д??????????????????????????????????岻????????????????????????????????????????·????cookie???????????·??????????????????e???????jsд????????????cookie??????????д???????????cookie????????У???????js????????cookie???????????????????????????cookie???????е????????о????????????????????????????
??????????????????????cookie??????????????????????????????и??????????????????????лл????????
??????????
<button class="btn btn-sm btn-success" type="submit" id="detailEp" onclick="return exportCheck(true);" forbid="yes">
<i class="icon-arrow-right bigger-110"></i> ????
</button>
<br><script>
$(function() {
var timer = "";
});
//?????????????????????
$("#myForm").submit(function() {
$("button[type=submit]"??this).attr("disabled"??"disabled");
//????????????????е??????
timer = setInterval(refrashPg??1000);
})
//????????????????????????
function refrashPg() {
if (getCk() =="1") {
clearInterval(timer);
$("#detailEp").removeAttr("disabled");
}
delCk();
}
//js?????cookie
function getCk() {
debugger
var ck = document.cookie.split(";");
var ckname = "";
for (var i = 0;i<ck.length;i++) {
var arr = ck[i].split("=");
if (arr[0] =="updtstatus") {
ckname = arr[1];
break;
}
}
return ckname;
}
//js?????cookie
function delCk() {
var exp = new Date();
var name = "updtstatus";
exp.setTime(exp.getTime()-1000);
var cval = getCk();
document.cookie = name  + "=" + cval + "; expires=" + exp.toGMTString();
}
}
??????????????????????Java POI????
1 public void buildExcelDocument(Map<String?? Object> obj??String fileName??String type??
2              HttpServletRequest request?? HttpServletResponse response)
3             throws Exception {
4         HSSFWorkbook workbook = new HSSFWorkbook();
5         if ("1".equals(type)) {
6             List<Map<String?? Object>> contentList =  (List<Map<String?? Object>>) obj.get("content");
7             HSSFSheet sheet = workbook.createSheet("sheet1");//????Excel??汾??2003-2007??xls?? ??????2010??????? XSSFSheet
8             Map<String??String>  titleList = (Map<String?? String>) obj.get("title");
9             //?????key ???????listMap?е?map??key
10             List<String> mkey = new ArrayList<String>();
11             //?????value ???
12             List<String> mvalue = new ArrayList<String>();
13             Iterator<Entry<String?? String>> it = titleList.entrySet().iterator();
14             while(it.hasNext()){
15                 @SuppressWarnings("rawtypes")
16                 java.util.Map.Entry entry = (java.util.Map.Entry)it.next();
17                 mkey.add((String) entry.getKey());
18                 mvalue.add((String) entry.getValue());
19             }
20             sheet.setDefaultColumnWidth((short) 12);
21             HSSFCell cell = null;
22             for (int i = 0;i<mvalue.size();i++) {
23                 cell = getCell(sheet?? 0?? i);
24                 setText(cell?? mvalue.get(i));
25             }
26
27             for (short i = 0; i < contentList.size(); i++) {
28                 HSSFRow sheetRow = sheet.createRow(i+1);
29                 Map<String?? Object> entity = contentList.get(i);
30                 for (int j = 0;j< mkey.size();j++) {
31                         if (entity.get(mkey.get(j)) instanceof String) {
32                             sheetRow.createCell(j).setCellValue((String)entity.get(mkey.get(j)));
33                         } else if (entity.get(mkey.get(j)) instanceof Double) {
34                             sheetRow.createCell(j).setCellValue((Double)entity.get(mkey.get(j)));
35                         } else if (entity.get(mkey.get(j)) instanceof Date){
36                             String date = (entity.get(mkey.get(j))).toString();
37                             sheetRow.createCell(j).setCellValue(date.substring(0?? 10));
38                         } else if (entity.get(mkey.get(j)) instanceof BigDecimal){
39                             sheetRow.createCell(j).setCellValue((entity.get(mkey.get(j))).toString());
40                         }
41                     }
42                 }
43             }
44         } else if ("2".equals(type)) {
45             List<String[]> contentList =  (List<String[]>) obj.get("content");
46             HSSFSheet sheet = workbook.createSheet("sheet1");
47             String[]  titleList = (String[]) obj.get("title");
48             HSSFCell cell = null;
49             for (int i = 0;i<titleList.length;i++) {
50                 cell = getCell(sheet?? 0?? i);
51                 setText(cell?? titleList[i]);
52             }
53             for (short i = 0; i < contentList.size(); i++) {
54                 HSSFRow sheetRow = sheet.createRow(i+1);
55                 String[] detail = contentList.get(i);
56                 for (int j = 0;j< detail.length;j++) {
57                     sheetRow.createCell(j).setCellValue((String)contentList.get(i)[j]);
58                 }
59             }
60         }
61
62        //??????????????Excel??????
63         String filename = fileName + ".xls";
64       //?????????????
65         filename = Chineseutil.encodeFilename(filename?? request);
66         response.setContentType("application/Vnd.ms-excel;charset=UTF-8");
67         response.setHeader("Content-Disposition"?? "attachment;filename=" + new String(filename.getBytes("gb2312")?? "iso8859-1"));
68         OutputStream ouputStream = response.getOutputStream();
69         workbook.write(ouputStream);
70
71         //????????????????cookie
72      Cookie status = new Cookie("updtstatus"?? "1");
73       status.setMaxAge(3600);//????cookie??????1??С?
74       response.addCookie(status);
75
76         ouputStream.flush();
77         ouputStream.close();
78     }