ページにグリッド ビューがあり、それを Excel シートにエクスポートしたいです。以下は、このタスクを実行するために記述したコードです。ここでは、グリッドをバインドするメソッドにデータセットを既に渡していbtnExcelExport
ます。グリッド コンテンツを Excel シートにエクスポートします:-
private void BindGridView(DataSet ds)
{
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
GVUserReport.DataSource = ds;
GVUserReport.DataBind();
btnExcelExport.Visible = true;
}
}
}
protected void btnExcelExport_Click(object sender, EventArgs e)
{
Response.Clear();
Response.AddHeader("content-disposition","attachment;filename=FileName.xls");
Response.Charset = "";
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.ContentType = "application/vnd.xls";
System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GVUserReport.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();
}
public override void VerifyRenderingInServerForm(Control control)
{
return;
}
デバッグ中に、グリッドが正常にバインドされていることがわかりましたが、Excel にエクスポートしようとすると、次のエラーが発生します。
「Microsoft JScript ランタイム エラー: Sys.WebForms.PageRequestManagerParserErrorException: サーバーから受信したメッセージを解析できませんでした。」