2014-01-16 49 views
0

下載Excel中我有以下的servlet,我使用「GET」方法下載我生成使用Apache POI的Excel文件。從Servlet的

response.setContentType("application/vnd.ms-excel"); 
response.setHeader("Content-Disposition", "attachment; filename=reg_user.xls"); 

HSSFWorkbook workbook = new HSSFWorkbook(); 
HSSFSheet sheet = workbook.createSheet("Registered Users"); 

// create workbook 

ServletOutputStream out = response.getOutputStream(); 
workbook.write(out); 
out.flush(); 
out.close(); 

我對這個servlet做了一個ajax調用。但Excel文件沒有下載。當我看着該控制檯,它有一些奇怪的字符,從所謂的Excel文件中的可能數據一起

+ ) , * ` 註冊用戶## 用戶ID 姓名 電子郵件地址 手機號碼 日期BirthGenderLocale100005085485545

我用同樣的方法將文件寫入我的電腦使用下面的代碼,它的工作。

FileOutputStream out = new FileOutputStream(new File("C:\\new.xls")); 
workbook.write(out); 
out.close(); 

但我想要的是自動下載文件,這是不工作的原因。

可能是什麼課程?我已經正確設置了響應內容類型。

回答

0

好吧,其實問題必須是我正在做一個ajax調用。當我使用<a href="reporting.do?type=USERS">User Report</a>直接調用servlet時,它工作正常。

1

當ajax調用完成時,瀏覽器不顯示下載彈出窗口,您應該使用從ajax調用接收到的頭信息和字節再次創建文件