源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

DataTable数据导出成Excel文件的小例子

  • 时间:2020-05-02 10:46 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:DataTable数据导出成Excel文件的小例子
[u]复制代码[/u] 代码如下:
/// /// 将DataTable中的数据导出到指定的Excel文件中 /// /// Web页面对象 /// 包含被导出数据的DataTable对象 /// Excel文件的名称 public static void Export(System.Web.UI.Page page,System.Data.DataTable tab,string FileName) { System.Web.HttpResponse httpResponse = page.Response; System.Web.UI.WebControls.DataGrid dataGrid=new System.Web.UI.WebControls.DataGrid(); dataGrid.DataSource=tab.DefaultView; dataGrid.AllowPaging = false; dataGrid.HeaderStyle.BackColor = System.Drawing.Color.Green; dataGrid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center; dataGrid.HeaderStyle.Font.Bold = true; dataGrid.DataBind(); httpResponse.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(FileName,System.Text.Encoding.UTF8)); //filename="*.xls"; httpResponse.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312"); httpResponse.ContentType ="application/ms-excel"; System.IO.StringWriter tw = new System.IO.StringWriter() ; System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw); dataGrid.RenderControl(hw); string filePath = page.Server.MapPath("..")+"//Files//" +FileName; System.IO.StreamWriter sw = System.IO.File.CreateText(filePath); sw.Write(tw.ToString()); sw.Close(); DownFile(httpResponse,FileName,filePath); httpResponse.End(); } private static bool DownFile(System.Web.HttpResponse Response,string fileName,string fullPath) { try { Response.ContentType = "application/octet-stream"; Response.AppendHeader("Content-Disposition","attachment;filename=" + HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8) + ";charset=GB2312"); System.IO.FileStream fs= System.IO.File.OpenRead(fullPath); long fLen=fs.Length; int size=102400;//每100K同时下载数据 byte[] readData = http://www.1sucai.cn/yongle_tianya/archive/2011/10/24/new byte[size];//指定缓冲区的大小 if(size>fLen)size=Convert.ToInt32(fLen); long fPos=0; bool isEnd=false; while (!isEnd) { if((fPos+size)>fLen) { size=Convert.ToInt32(fLen-fPos); readData = http://www.1sucai.cn/yongle_tianya/archive/2011/10/24/new byte[size]; isEnd=true; } fs.Read(readData, 0, size);//读入一个压缩块 Response.BinaryWrite(readData); fPos+=size; } fs.Close(); System.IO.File.Delete(fullPath); return true; } catch { return false; } }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部