2011-12-08 14 views
0

私は、動的に生成されたHTMLテーブルをExcelにレンダリングする簡単なASPXページを持っています。それは動作しますが、screenshotからわかるように、何らかの理由でワークブックを開くと、GUIを持たないExcelインスタンスの結果が数式バーと下部のワークシートタブ以外のものになります。簡単に閉じたり終了したりすることができず、ワークステーションも減速しているようです。GUIはどこにありますか?

私はこのコードを使用してテーブルを構築してエクスポートしています。

 runReport2();//Builds the table - this bit is fine. 

     Response.Clear(); 
     Response.Charset = ""; 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     Response.ContentType = "application/vnd.ms-excel"; 
     Response.AddHeader("content-disposition", "attachment;filemename=" + "FleetReport.xls"); 

     System.IO.StringWriter sw = new System.IO.StringWriter(); 
     HtmlTextWriter hw = new HtmlTextWriter(sw); 

     this.tblReport.RenderControl(hw); 
     System.Text.StringBuilder sb1 = new System.Text.StringBuilder(); 

     sb1.Append(sw.ToString()); 
     sw = null; 
     hw = null; 
     Response.Write(sb1.ToString()); 
     sb1.Remove(0, sb1.Length); 
     Response.Flush(); 
     Response.End(); 

あなたは私が間違っているかもしれないものを提案することはできますか?私はこれを賢明な方法でやっていますか、代わりにCSVをExcelに送るべきですか?

+0

は、Excelは、単にフルスクリーンではなく、この方法を試してみてください? –

+0

このウィンドウは表示されません。私はサイド/コーナーをドラッグしてこの最小限のウィンドウのサイズを変更できますが、GUIの残りの部分は見つけることができません。 – 5arx

+0

ファイルシステムとは別にExcelファイルをダウンロードし、ファイルシステムから開くと、問題が発生しますか?言い換えれば、エクセルファイル自体があなたのコードではなく、問題の原因ではないのですか? –

答えて

1

 HttpContext.Current.Response.Clear(); 
     HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; Filename = FleetReport.xls")); 
     Response.Charset = ""; 
     Response.Cache.SetCacheability(HttpCacheability.NoCache); 
     HttpContext.Current.Response.ContentType = "application/ms-excel"; 
     StringWriter sw = new StringWriter(); 
     HtmlTextWriter hw = new HtmlTextWriter(sw); 
     this.tblReport.RenderControl(hw); 
     Response.Write(sw.ToString()); 
     Response.End(); 
+0

パーフェクト!どうもありがとうございました。私は何をやっていたのですか... ...? スプレッドシートを開くときに、「開こうとしているファイル(myfile.xls)がファイル拡張子で指定されているものとは異なる形式です」というメッセージが表示されます。 – 5arx

関連する問題