手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >DataTable数据导出成Excel文件的小例子
DataTable数据导出成Excel文件的小例子
摘要:复制代码代码如下://////将DataTable中的数据导出到指定的Excel文件中//////Web页面对象///包含被导出数据的Dat...

复制代码 代码如下:

///

/// 将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.jb51.net/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.jb51.net/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;

}

}

【DataTable数据导出成Excel文件的小例子】相关文章:

asp.net DataGridView导出到Excel的三个方法[亲测]

ASP.NET技巧:数据岛出到Excel最为简易的方法

DataList 中动态绑定服务器子控件的代码

asp.net读取excel文件的三种方法示例

ASP.NET上传文件的简单例子

Net中实现无限分类的2个例子

asp.net连接数据库读取数据示例分享

ASP.NET中DataTable,DataSet,DataView的用法小结

.NET操作Excel实例分享

ASP.NET 导出到Excel时保留换行的代码

精品推荐
分类导航