2012-06-28 20 views
1

我有一個Spring MVC和Excel的問題。我將excel文件作爲lob存儲在數據庫中。就像我的實體數據庫,這部分是PostgreSQL的Spring MVC:如何從數據庫中下載Excel

@Lob 
    @Column(name = "Exel") 
    private String exel; 

接下來我想從數據庫得到它,用戶可以從網頁上下載,這是控制器

@RequestMapping(value = "/downloadExelTemplate.xls", method = RequestMethod.GET) 
    public void downloadExelTemplate(HttpServletResponse response) 
      throws IOException { 
     response.setContentType("application/x-msexcel"); 
     ExelDTO exel = service.getExel(new Long(1)); 
     InputStream is = new ByteArrayInputStream(exel.getExel().getBytes()); 
     BufferedWriter outex = new BufferedWriter(new FileWriter("out.xls")); 
     outex.write(exel.getExel()); 
     outex.close(); 
     ServletOutputStream out = response.getOutputStream(); 
     out.write(exel.getExel().getBytes()); 
     is.close(); 
     out.close(); 
    } 

我也得到不正確的XLS與錯誤文件。 請幫幫我。哪裏不對?當我從流中獲取文件是相同的效果。

+0

請解釋確切的問題是什麼? –

+0

我的問題是,當我得到我的硬盤上的xls文件這是失敗文件,我有很多奇怪的想法,我無法閱讀它,所以它不是有用的。我認爲轉換有一些東西。 – RMachnik

回答

0

所以,我解決我的問題,我改變休眠實體數據的類型

@Lob 
byte[] exelData; 

,一切運行良好。當只有文本文件時,將@lob映射到字符串沒有問題,但與ms office格式連接失敗。所以我學會了如何正確保存數據文件。

相關問題