2013-06-19 86 views
4

即使在我的控制器方法中沒有錯誤,我也無法從瀏覽器中下載excel文件。spring MVC 3下載Excel文件

@RequestMapping(value = "/getExcelFile", method = RequestMethod.GET, produces="application/json") 
public @ResponseBody HttpEntity<byte[]> getUserDetailsExcelFile(@RequestParam Long id) { 
    try { 
      byte[] wb = ExcelReportView.buildExcelDocument(data); 
      HttpHeaders header = new HttpHeaders(); 
      header.setContentType(new MediaType("application", "vnd.openxmlformats-officedocument.spreadsheetml.sheet")); 
      header.set("Content-Disposition", 
          "attachment; filename=test.xls"); 
      header.setContentLength(wb.length); 
      return new HttpEntity<byte[]>(wb, header); 
     } catch (Exception e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     return null; 
} 

我收到了來自螢火蟲的信息請求。

Request Method:GET Status Code:200 OK 
Request Headersview source 
Accept:application/json, text/plain, */* 
Accept-Encoding:gzip,deflate,sdch 
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4 
Connection:keep-alive 
Cookie:org.cups.sid=ed8f7540d976ccc90b85954f21520861;   org.springframework.web.servlet.i18n.CookieLocaleResolver.LOCALE=fr; __ngDebug=true; JSESSIONID=tqi3ofownl17 
Host:localhost:8888 
    Referer:http://localhost:8888/ 
User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36 
X-Requested-With:XMLHttpRequest 
Query String Parametersview sourceview URL encoded 
id:1 
Response Headersview source 
Cache-Control:no-cache 
Content-Disposition:attachment; filename=test.xls 
Content-Length:1849 
Content-Type:application/vnd.openxmlformats-officedocument.spreadsheetml.sheet 

響應

��A����\p                          B�a=���=h\:�#[email protected]�"��1���Arial1���Arial1���Arial1���Arial"$"#,##0_);("$"#,##0)"$"#,##0_); [Red]("$"#,##0) "$"#,##0.00_);("$"#,##0.00)% "$"#,##0.00_);[Red]("$"#,##0.00),*'_(* #,##0_);_(* (#,##0);_(* "-"_);_(@_)5)0_("$"* #,##0_);_("$"* (#,##0);_("$"* "-"_);_(@_)4,/_(* #,##0.00_);_(* (#,##0.00);_(* "-"??_);_(@_)=+8_("$"* #,##0.00_);_("$"* (#,##0.00);_("$"* "-"??_);_(@_)��� � ��� �� ��� �� ��� �� ��� �� ��� �� ��� �� ��� �� ��� �� ��� �� ��� �� ��� �� ��� �� ��� �� ��� �� � � �+�� �� �)�� �� �,�� �� �*�� �� � �� �� ������������������`�� 
Users Details���c 
First Name Last NameEmailPhone AddressLast AppointmentAppointment Status� K �� 
d����MbP?_*+��%������"d,,�?�?U����  � �� �v>�@e 

所以我不知道該怎麼做的內容和,我想瀏覽器給我的選擇sauvgader文件的文件夾。

謝謝

+0

您的'產品'(JSON)參數與響應內容類型標頭(XLS)相矛盾。 – acdcjunior

+0

我會申請使用AbstractExcelView好檢查是在這裏http://www.mkyong.com/spring-mvc/spring-mvc-export-data-to-excel-file-via-abstractexcelview/ –

+0

@acdcjunior我刪除[生產](JSON)對於xlsx vnd.openxmlformats-officedocument.spreadsheetml.sheet,總是存在相同的問題 – badri

回答

1

有點遲到了,但...

我猜的錯誤是在這一行:

header.set("Content-Disposition", "attachment; filename=test.xls"); 

嘗試改變「掛職」到「內聯「像這樣:

header.set("Content-Disposition", "inline; filename=test.xls");