2
でExcelファイルにダウンロード中に何も表示されません。次のコードを使用してデータテーブルからExcelファイルをダウンロードします。しかし、私は別のサンプル・ページで同じコードスニペットを試してみました、それがうまく機能している...それはまだファイルをダウンロードしないで、すべてのコードを通過しているASPおよびC#
private void DumpExcel(DataTable tbl)
{
try
{
string attachment = "attachment; filename=StocksHistReport.xls";
Response.ClearContent();
Response.AddHeader("content-disposition", attachment);
Response.ContentType = "application/vnd.ms-excel";
string tab = "";
foreach (DataColumn dc in tbl.Columns)
{
Response.Write(tab + dc.ColumnName);
tab = "\t";
}
Response.Write("\n");
int i;
foreach (DataRow dr in tbl.Rows)
{
tab = "";
for (i = 0; i < dt.Columns.Count; i++)
{
Response.Write(tab + dr[i].ToString());
tab = "\t";
}
Response.Write("\n");
}
//Response.BuffferOutput = True;
HttpContext.Current.Response.Flush();
HttpContext.Current.Response.SuppressContent = true;
HttpContext.Current.ApplicationInstance.CompleteRequest();
//Response.Flush();
//Response.Close();
}
catch (Exception ex)
{
lblMsg.Text = ex.Message;
Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('" + ex.Message + "');", true);
}
}
を実行中に、データ・テーブルに値を持っている...
私はWeb設定ファイルで問題が起こっていると思います。参考までに私もそれをコピーしています。
<appSettings>
<add key="ChartImageHandler" value="storage=file;timeout=20;deleteAfterServicing=false;privateImages=false" />
</appSettings>
<system.web>
<compilation debug="true" targetFramework="4.5">
<assemblies>
<add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
</assemblies>
</compilation>
<httpHandlers>
<add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
</httpHandlers>
<pages>
<controls>
<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
</controls>
</pages>
</system.web>
<system.webServer>
<handlers>
<remove name="ChartImageHandler" />
<add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST"
path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
</handlers>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
どのような理由が考えられますか? Webの設定に問題がある場合、私は間違っていますか?
あなたはエラーが発生しませんか?あなたのコードをトレースしましたか? – Valkyrie
エラーはありません。 スレッドを取得する前に、例外が中止され、Response.End()がHttpContext.Current.Response.Flush()に置き換えられました。 HttpContext.Current.Response.SuppressContent = true; HttpContext.Current.ApplicationInstance.CompleteRequest(); – Developer