2011-09-18 11 views
0

私はTomcat 6.0.26とJava 1.4バージョンでJSF 1.1を使用しています。私は自分のプロジェクトでそれらを使用しなければなりません。私のjsfページにはデータテーブルがあり、エクスポートするがボックスに保存する。 ;なたのþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿá±jsf 1.1問題として保存

ÐÏà¡:私はExcelが、それはこのようにブラウザを示したcommandLinkエクスポートをクリックした後、 =œ¯¼=時間\°ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿRootEntryÿÿÿÿÿÿÿÿ@Workbookÿÿÿÿÿÿÿÿÿÿÿÿ0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿOIAA°AA \ pmusty B:¾#8X @ "・Ú1ÈÿArial1ÈÿArial1ÈÿArial1ÈÿArial" $ "#、## 0 _);(" $ "#、## 0)!" ( "$"#、## 0) "" $ "#、## 0 _);" "$" (##、## 0); _( "$" *、## 0) ( "$" * " - " );@)))(*#、## 0 _); _(*(#、## 0); _(* " - " );()@、:。( "$? "*#、## 0.00 _); _(「$」*(#、## 0.00); _(「$」*「 - 」△);(@)6+ 1(* 、## 0.00 _); _(*(#、## 0.00); _(* " - " ?? ); àõÿôÀàõÿàààààààààààààààààààààààà)õÿøÀà、õÿøÀààÿøÀàÿÿÿÀÀ "€ÿ"€ÿ "€ÿ"€ÿ "€œ`... - シート・オン・アサイド・デパートメイキング・デベロップメント・イニシアチブ02メスト・イット・オン・ミスター・ファイヤー・デニム・ネイバーデヴァー・デーン・デンメネ506004ÎT'IΆ»ÌÁdü©ÒÒMbP ?_ * +、€%ÿ "¡"¡¡¯¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ ¶@ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ! "#$þÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ

どうすればこの問題を解決できますか?

thnx balusC。しかし問題は解決していない。ここに私のコードは、あなたがブラウザがあるファイルの種類を理解するように、コンテンツタイプヘッダを設定する必要が

`公共の文字列のエクスポート(一覧リスト){

Iterator i1 = list.iterator(); 
    HSSFWorkbook wb = new HSSFWorkbook(); 
    HSSFSheet s = wb.createSheet(); 
    HSSFRow r = null; 
    HSSFCell c = null; 
    int i = 0; 

    try { 

     FacesContext facesContext = FacesContext.getCurrentInstance(); 
     ExternalContext externalContext = facesContext.getExternalContext(); 
     HttpServletResponse resp = (HttpServletResponse) externalContext 
       .getResponse(); 
     ServletOutputStream out = resp.getOutputStream(); 
     resp.setContentType("application/vnd.ms-excel"); 


     HSSFRow r2 = s.createRow(0); 

     for (short cellnum = (short) 0; cellnum < 6; cellnum++) { 

      c = r2.createCell(cellnum); 

      if (cellnum == 0) 
       c.setCellValue("AD"); 
      else if (cellnum == 1) 
       c.setCellValue("SOYAD"); 
      else if (cellnum == 2) 
       c.setCellValue("DEPARTMAN"); 
      else if (cellnum == 3) 
       c.setCellValue("EV"); 
      else if (cellnum == 4) 
       c.setCellValue("CEP"); 

      else if (cellnum == 5) 
       c.setCellValue("DAHILI"); 
     } 


     while (i1.hasNext()) { 
      md1 = new Model(); 
      md1 = (Model) i1.next(); 

      int rownum = i + 1; 

      r2 = s.createRow(rownum); 

      for (short cellnum = (short) 0; cellnum < 6; cellnum++) { 

       c = r2.createCell(cellnum); 

       if (cellnum == 0) 
        c.setCellValue(md1.getAd()); 
       else if (cellnum == 1) 
        c.setCellValue(md1.getSoyad()); 
       else if (cellnum == 2) 
        c.setCellValue(md1.getDepartman()); 
       else if (cellnum == 3) 
        c.setCellValue(md1.getEv()); 
       else if (cellnum == 4) 
        c.setCellValue(md1.getCep()); 

       else if (cellnum == 5) 
        c.setCellValue(md1.getDahili()); 

      } 

      i++; 
     } 
     resp.setHeader("content-disposition:", 
       "attachment; filename= \"TelefonRehberi.xls\""); 

     wb.write(out); 
     out.flush(); 
     out.close(); 

     facesContext.responseComplete(); 
    } catch (Exception e) { 
     System.out.println("Error: " + e); 
    } 

    return ""; 
}` 
+0

JSFソースはどのように見えますか? –

答えて

1

...です。

あなたはブラウザがダイアログとして 保存をポップするように、コンテンツディスポジションヘッダーを設定する必要が
response.setHeader("Content-Type", "application/vnd.ms-excel"); 

response.setHeader("Content-Disposition", "attachment;filename=\"" + yourFileName + "\""); 

あなたは、バイナリデータとしてではなく、文字としてファイルを書き込むことを確認する必要がありますデータ。

InputStream input = getExcelFileContentSomehow(); 
OutputStream output = response.getOutputStream(); 
// Write input to output. 

更新:あなたのコードスニペットに従って、あなたのContent-Dispositionヘッダが正しくありません。ヘッダー名の最後にコロンがあります。それを除く。

+1

@kenan:この答えを受け入れるには、その左側のチェックマークを押してください。 – JoseK

関連する問題