verifyrenderinginserverform ajax,以下代码导出excel2007,能正常导出,但是每次打开却出现“您尝试打开的文件***的格式与文件扩展名指定的格式不一致”,请问如何解...

protected void Button1_Click(object sender, EventArgs e)

{

GridView1.BorderWidth = 0;

System.Web.HttpContext curContext = System.Web.HttpContext.Current;

// IO用于导出并返回excel文件

System.IO.StringWriter strWriter = null;

System.Web.UI.HtmlTextWriter htmlWriter = null;

// 设置编码和附件格式

HttpContext.Current.Response.Clear();

HttpContext.Current.Response.Buffer = true;

HttpContext.Current.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "aaa.xls"));

curContext.Response.ContentType = "application/vnd.ms-excel";

curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB18030");

curContext.Response.Charset = "";

// 导出excel文件

strWriter = new System.IO.StringWriter();

htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);

// 返回客户端

GridView1.RenderControl(htmlWriter);

string css = @"

td {border:1px solid black;}

";

curContext.Response.Write(css);

curContext.Response.Write(strWriter.ToString().Replace("
", "
"));

curContext.Response.End();

}

protected void Page_Load(object sender, EventArgs e)

{

if (!Page.IsPostBack)

{

GridView1.DataSource = CreateDataSourceByXianhuiMeng();

GridView1.DataBind();

}

}

System.Data.DataView CreateDataSourceByXianhuiMeng()

{

System.Data.DataTable dt = new System.Data.DataTable();

System.Data.DataRow dr;

dt.Columns.Add(new System.Data.DataColumn("学生班级", typeof(System.String)));

dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));

dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));

dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));

dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));

dt.Columns.Add(new System.Data.DataColumn("计算机", typeof(System.Decimal)));

for (int i = 0; i < 8; i++)

{

System.Random rd = new System.Random(Environment.TickCount * i); ;

dr = dt.NewRow();

dr[0] = "班级" + i.ToString();

dr[1] = "学生姓名:孟子E章" + i.ToString() + "
所在班级:" + "班级" + i.ToString();

dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);

dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);

dr[4] = System.Math.Round(rd.NextDouble() * 100, 2);

dr[5] = System.Math.Round(rd.NextDouble() * 100, 2);

dt.Rows.Add(dr);

}

System.Data.DataView dv = new System.Data.DataView(dt);

return dv;

}

public override void VerifyRenderingInServerForm(Control control)

{ }

protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)

{

if (e.Row.RowType == DataControlRowType.Header)

{

TableCell old_Tc;

GridViewRow rowHeader = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);

old_Tc = new TableCell();

old_Tc.Text = "表头";

old_Tc.Height = 50;

//old_Tc.HorizontalAlign = HorizontalAlign.Center;

old_Tc.ColumnSpan = 2;

old_Tc.Attributes.Add("style", "border-top: none; border-left: none;border-right: none");

rowHeader.Cells.Add(old_Tc);

GridView1.Controls[0].Controls.AddAt(0, rowHeader);

}

}

无标题页
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值