关于导出EXCEL出现的问题
在某些客户的电脑上导出EXCEL文件,导出来的不是EXCEL文件,却是.aspx格式的文件,
请问谁知道为什么???有什么解决方法,在网上也没找到同类问题
求解决方案!!!!!!
以下是导出EXCEL代码
/// <summary>
/// 动态创建Grid
/// </summary>
/// <returns></returns>
private GridView CreateGrid()
{
GridView gdvGrid = new GridView();
gdvGrid.AutoGenerateColumns = false;
BoundField bf1 = new BoundField();
bf1 .HeaderText = "采购员名称";
bf1 .DataField = "采购员名称";
gdvGrid.Columns.Add(bf1 );
return gdvGrid;
}
/// <summary>
/// 导出Excel方法
/// </summary>
/// <param name="ctl"></param>
private void ToExcel(System.Web.UI.Control ctl)
{
Response.Charset = "UTF-8";
Response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls");
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.ContentType = "application/ms-excel";
ctl.Page.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new HtmlTextWriter(tw);
ctl.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
/// <summary>
/// 绑定动态表格及调用ToExcel方法
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnToExcel_Click(object sender, EventArgs e)
{
GridView gdvGrid = CreateGrid();
divshow.Controls.Add(gdvGrid);
DataSet ds = new DataSet();
ds = GetListFromProc();
gdvGrid.DataSource = ds.Tables["NoticeInvoiceDetail_DS1"];
gdvGrid.DataBind();
Control table = gdvGrid.Controls[gdvGrid.Controls.Count - 1];
ToExcel(table);
divshow.Controls.Clear();
}