private void Page_Load(object sender, System.EventArgs e)
...{
// 在此处放置用户代码以初始化页面
if(Request .QueryString ["GenerateIndex"]!=null && Request .QueryString ["GenerateIndex"].ToString ()!="")
...{
GenerateIndex=Convert .ToInt32 (Request .QueryString ["GenerateIndex"]);
}
if(!this.Page .IsPostBack )
...{
DataTable dt=cpm.PaperGenerateDetailQuery (GenerateIndex);
if(dt!=null && dt.Rows .Count >0)
...{
this.DataGrid1 .DataSource =dt;
this.DataGrid1 .DataBind ();
}
}
}private void Button1_Click(object sender, System.EventArgs e)
...{
Response.Clear();
Response.Buffer= true;
Response.Charset="GB2312";
Response.AppendHeader("Content-Disposition","attachment;filename=FileName.xls");
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。
this.EnableViewState = false;
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN",true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.DataGrid1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
}
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
...{
if(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
...{
e.Item.Cells[0].Attributes.Add("style","vnd.ms-excel.numberformat:@");//格式化为EXCEL的文本
e.Item.Cells[1].Attributes.Add("style","vnd.ms-excel.numberformat:@");
}
}
注意:
1.若要使用此种方法,则datagrid不能做分页操作,否则不能保存至EXCEL.
2.由于datagrid的数据量较大,共5万条数据,生成的EXCEL文档约为6M。由于.net默认的request content 为4096KB,约4M,因此将导致我此次的EXCEL生成失败。解决办法是,修改C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\CONFIG\machine.config文件,找到<httpRuntime
executionTimeout="9000"
maxRequestLength="4096"
useFullyQualifiedRedirectUrl="false"
minFreeThreads="20"
minLocalRequestFreeThreads="20"
appRequestQueueLimit="100"
enableVersionHeader="true"
/>节,将maxRequestLength="4096"增大至409600.
至此,问题解决。
datagrid数据导入EXCEL的实现方法及注意事项
原创文章如转载,请注明:转载自悠悠博客 [ http://www.ajaxstu.com/ ]
相关文章:
- ASP操作Excel常见错误(2007-11-15 4:39:21)
- 同一个用户不允许同时登陆两次(2007-11-15 1:17:43)
- 罗列全部session和application(2007-11-12 6:26:16)
- 访问和更新Cookies集合(2007-11-11 1:42:29)
- asp中cookie使用示例(2007-11-7 3:2:28)
- asp重定向-response.redirect和server.transfer(2007-10-24 9:18:30)
- vbscript Replace 函数(2007-10-21 4:33:2)
- asp:Server对象(2007-10-11 7:9:58)
- vbscript:日期格式常数(2007-10-10 7:30:49)
- ASP动态包含文件的改进方法(2007-10-8 1:5:48)
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
