2013-07-16 36 views
0

我需要從jQuery對話窗口創建excel導出功能。我有錨點鏈接並點擊鏈接到struts動作類來從數據庫中拉出數據並導出。Excel導出功能 - 從jQuery對話窗口

我打電話使用jQuery像方法:

jQuery.ajax({ 
    url : '<s:url action="partexport"/>', 
    data : "filters.productNbr" : $("#productsTextArea1").val() 
}); 

Struts Action類:

public String method { 
    ----------------- 
    method to call backend... 
    -------------------------- 
    httpServletResponse.setContentType("application/vnd.ms-excel"); 
    String filename = filters.getPeriod() + "_" +filters.getRegion() ; 
    httpServletResponse.setHeader("Content-disposition", 
    "attachment; filename="+filename+".xls"); 
    ServletOutputStream outputStream = httpServletResponse.getOutputStream(); 
    outputStream.flush(); 
    return NONE; 
} 

它返回null,但假設下載xls片。這裏有沒有實現Excel導出功能的可能性?

+0

你一個AJAX網址看起來相當奇怪。 – sh54

回答

0

返回二進制流,從動作的輸出:

String filename = filters.getPeriod() + "_" +filters.getRegion() ; 
httpServletResponse.setContentType("application/octet-stream"); 
httpServletResponse.setHeader("Content-Disposition", "attachment; filename="+filename+".xls"); 
ServletOutputStream outputStream = httpServletResponse.getOutputStream(); 
Path fileIn = Paths.get(filename); 
Files.copy(fileIn, outputStream); 
outputStream.flush(); 
return NONE;