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

 更新时间:2013年04月23日 11:45:02   作者:  
DataTable数据导出成Excel文件的小例子,需要的朋友可以参考一下

复制代码 代码如下:

///
/// 将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 = https://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 = https://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;
}
}

相关文章

  • .net读取Rss转换为DataTable

    .net读取Rss转换为DataTable

    使用.NET读取Rss数据,并转换为DataTable返回。方法很简单,看一下面的代码吧。
    2013-10-10
  • .net 程序通过 crontab 无法启动手动执行脚本启动的方法

    .net 程序通过 crontab 无法启动手动执行脚本启动的方法

    .net 网关程序需要设置定时重启,按照日常操作先把正在运行的 PID kill 掉后,再执行启动服务。通过脚本无法启动,试着把 .net 程序写成服务后,发现是可以正常重启的,本文给大家介绍下.net 程序通过 crontab 无法启动手动执行脚本启动,感兴趣的朋友一起看看吧
    2021-12-12
  • ASP.NET Core Controller与IOC结合问题整理

    ASP.NET Core Controller与IOC结合问题整理

    在本篇文章里小编给大家整理了一篇关于ASP.NET Core Controller与IOC结合问题整理内容,有需要的朋友们可以学习下。
    2021-01-01
  • VS2019离线安装方法图文教程

    VS2019离线安装方法图文教程

    这篇文章主要为大家详细介绍了VS2019离线安装方法图文教程,,文中安装步骤介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • ASP.NET图片上传实例(附源码)

    ASP.NET图片上传实例(附源码)

    这篇文章主要介绍了一个ASP.NET图片上传实例,文章还为大家提供了ASP.NET图片自动上传和局部刷新显示的源码,希望大家喜欢
    2015-11-11
  • .NET Core中依赖注入AutoMapper的方法示例

    .NET Core中依赖注入AutoMapper的方法示例

    这篇文章主要给大家介绍了关于.NET Core中依赖注入AutoMapper的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-01-01
  • asp.net微信开发(已关注用户管理)

    asp.net微信开发(已关注用户管理)

    这篇文章主要介绍了asp.net微信开发中有关已关注用户管理的相关内容,需要的朋友可以参考下
    2015-11-11
  • ASP.NET Core获取正确查询字符串参数示例

    ASP.NET Core获取正确查询字符串参数示例

    这篇文章主要为大家介绍了ASP.NET Core正确获取查询字符串参数,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • .NET实现ChatGPT的Stream传输的过程

    .NET实现ChatGPT的Stream传输的过程

    这篇文章主要介绍了.NET如何实现ChatGPT的Stream传输,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-07-07
  • .net平台推送ios消息的实现方法

    .net平台推送ios消息的实现方法

    这篇文章主要介绍了.net平台推送ios消息的实现方法,详细讲述了各个具体的实现步骤并附有源码供大家参考之用,需要的朋友可以参考下
    2014-10-10

最新评论