2013-05-06 68 views
0

我想創建一個文件。 Java中的Xls,但我不想讓他存儲在任何地方。我只是希望它被創建並呈現下載。創建文件.xls

我有下面的代碼,但是在下載excel文件後說文件無效。

private void criarFicheiroDeExemplo(RequestContext requestContext) throws IOException, InterruptedException { 
    requestContext.sResponse.setContentType("Excel.Application"); 
    requestContext.sResponse.setHeader("Content-Disposition", "attachment; filename =Ficheiro_de_exemplo_incidencias.xls"); 

    java.io.PrintWriter pw = requestContext.sResponse.getWriter(); 

    String ficheiro = construirFormatoFicheiroDeExemplo(); 
    pw.println(ficheiro); 

    pw.flush(); 
    Thread.sleep(2000); 
    pw.close(); 
} 

private String construirFormatoFicheiroDeExemplo() { 
    StringBuffer html = new StringBuffer(); 
    html.append("<table>"); //"Cria" a tabela 
    html.append("<tr>"); 
    html.append("<td>"); 
    html.append("<Strong>ID_INCIDENCIA</Strong>"); 
    html.append("</td>"); 
    html.append("</tr>"); //"Cria" uma linha e uma coluna 
    html.append("</table>");  
    return html.toString(); 
} 

有什麼建議嗎?

+0

錯誤消息準確地說了什麼?您可能會遇到更新版本的Excel中的[擴展強化安全功能](http://support.microsoft.com/kb/948615)。當文件內容與文件擴展名不匹配時,Excel的更新版本現在會提醒用戶。就像你的情況一樣,內容實際上是'html',但是你的頭文件「聲稱」它是一個二進制Excel文件。 – Leigh 2013-05-06 17:44:30

回答

0

將文件保存到磁盤並在文本編輯器中打開,看看它是否包含您所期望的。如果確實如此,Excel將不會打開它,那麼問題就不在於下載過程。問題在於文件中的內容。

如果您不想生成Excel格式的二進制數據,並且您不需要在電子表格中使用任何公式,則可以始終使用Excel打開TSV或CSV格式(這只是簡單的文本)。