asp.net怎样导出excel2007
发布时间:2022-12-26 14:16:44
asp.net如何导出到excel2007?对于新手来说还是有一定难度,怎么办?下面让小编为你带来asp.net导出excel2007的方法。
asp.net导出excel2007的方法步骤
在asp.net中导出Execl有两种方法,一种是将导出的文件存放在服务器某个文件夹下面,然后将文件地址输出在浏览器上;一种是将文件直接将文件输出流写给浏览器。在Response输出时,t分隔的数据,导出execl时,等价于分列,n等价于换行。
1、将整个html全部输出execl
此法将html中所有的内容,如按钮,表格,图片等全部输出到Execl中。
Response.Clear();
Response.Buffer= true;
Response.AppendHeader("Content-Disposition","attachment;filename="+DateTime.Now.ToString("yyyyMMdd")+".xls");
Response.ContentEncoding=System.Text.Encoding.UTF8;
Response.ContentType = "application/vnd.ms-excel";
this.EnableViewState = false;
这里我们利用了ContentType属性,它默认的属性为text/html,这时将输出为超文本,即我们常见的网页格式到客户端,如果改为ms-excel将将输出excel格式,也就是说以电子表格的格式输出到客户端,这时浏览器将提示你下载保存。ContentType的属性还包括:image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword 。同理,我们也可以输出(导出)图片、word文档等。下面的方法,也均用了这个属性。
2、将DataGrid控件中的数据导出Execl
上述方法虽然实现了导出的功能,但同时把按钮、分页框等html中的所有输出信息导了进去。而我们一般要导出的是数据,DataGrid控件上的数据。
System.Web.UI.Control ctl=this.DataGrid1;
//DataGrid1是你在窗体中拖放的控件
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");
HttpContext.Current.Response.Charset ="UTF-8";
HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType ="application/ms-excel";
ctl.Page.EnableViewState =false;
System.IO.StringWriter tw = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
如果你的DataGrid用了分页,它导出的是当前页的信息,也就是它导出的是DataGrid中显示的信息。而不是你select语句的全部信息。
为方便使用,写成方法如下:
public void DGToExcel(System.Web.UI.Control ctl)
{
HttpContext.Current.Response.AppendHeader("Content-Disposition","attachment;filename=Excel.xls");
HttpContext.Current.Response.Charset ="UTF-8";
HttpContext.Current.Response.ContentEncoding =System.Text.Encoding.Default;
HttpContext.Current.Response.ContentType ="application/ms-excel";
ctl.Page.EnableViewState =false;
System.IO.StringWriter tw = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
ctl.RenderControl(hw);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}
用法:DGToExcel(datagrid1);
3、将DataSet中的数据导出Execl
有了上边的思路,就是将在导出的信息,输出(Response)客户端,这样就可以导出了。那么把DataSet中的数据导出,也就是把DataSet中的表中的各行信息,以ms-excel的格式Response到http流,这样就OK了。说明:参数ds应为填充有数据表的DataSet,文件名是全名,包括后缀名,如execl2006.xls
public void CreateExcel(DataSet ds,string FileName)
{
HttpResponse resp;
resp = Page.Response;
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename="+FileName);
string colHeaders= "", ls_item="";
//定义表对象与行对象,同时用DataSet对其值进行初始化
DataTable dt=ds.Tables[0];
DataRow[] myRow=dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
int i=0;
int cl=dt.Columns.Count;
//取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
for(i=0;i<cl;i++)
{
if(i==(cl-1))//最后一列,加n
{
colHeaders +=dt.Columns[i].Caption.ToString() +"n";
}
else
{
colHeaders+=dt.Columns[i].Caption.ToString()+"t";
}
}
resp.Write(colHeaders);
//向HTTP输出流中写入取得的数据信息
//逐行处理数据
foreach(DataRow row in myRow)
{
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
for(i=0;i<cl;i++)
{
if(i==(cl-1))//最后一列,加n
{
ls_item +=row[i].ToString()+"n";
}
else
{
ls_item+=row[i].ToString()+"t";
}
}
resp.Write(ls_item);
ls_item="";
}
resp.End();
}
猜你感兴趣:
1.asp.net如何导出excel2007
2.excel2003打开excel2007怎么办
3.怎么将ASP.NET导出Excel表格
4.如何用C#导出Excel表格
5.将asp图片导出Excel的方法


猜你喜欢
- 我们在使用任务管理器的时候,经常会去关闭一些不想要的后台进程等,但是有些用户不知道,把Windows资源管理器给关闭了,然后电脑就黑屏了,然
- 懂游戏的朋友都知道,海盗船风扇是游戏玩家最喜欢的一款游戏硬件,具有极致的性能,但是在使用过程中可能会遇到不兼容的情况,特别是它的水纹系列的产
- 电脑故障是每台电脑无法避免的问题,不论是用户误操作还是系统存在BUG亦或是硬件故障。Mac下的 Time Machine是一个OS X自带的
- 当我们在使用win101903操作系统版本的时候,如果想要将自己的系统版本进一步更新升级的话,对于过程中出现的更新卡在96%不动,进度没有反
- WPS怎么精确调整文本框尺寸大小?wps中插入了一个文本框,想设置文本框得的大小,该怎么设置?下面我们就来看看详细的设置教程,需要的朋友可以
- 目前,大部分win7系统电脑用户都有遇到开机出现错误代码问题,开机出现错误,往往就说明Windows系统存在问题,win7系统开机故障的时候
- 滴滴打车怎么用?还在为没有出租车而烦恼吗?还在路边抢车吗?告诉你,滴滴一下,快车马上就来,超方便!那么滴滴打车怎么用呢?其实很简单,下面给大
- win10系统是一个非常容易使用的高智能系统。强大的兼容性可以保证系统在正常使用过程中不会出现任何问题。然而,随着win10系统的不断使用,
- 在一些需要吸引人眼球的文档中,往往将文档的背景进行颜色的设置,这就要对页面背景进行设置。在Word2007文档中可以设置单色的页面背景颜色也
- 谷歌浏览器是一款十分简洁的浏览器软件,使用的用户也是非常的多,而我们在使用的过程中或多或少都遇到过未响应的情况,这可能是因为缓存而造成的,下
- ①单击菜单栏--插入--图片--来自文件。 ②弹出本地对话框,选取图片打开。可以看到图片将之前的文字进行了覆盖。
- 学员的问题,2020年10月20日已经收过了,那么现在我要收2021年的1月21日的款项了,我要怎么才能做到它们自动往下催收呢?小编看了一下
- 最近有消息称,Win10升级政策改变,Win8.1用户的升级将是完全免费的,Win7用户也只需要掏很少一点钱。Windows XP/Vist
- 我们在开始菜单里可以快速打开电脑里大部分的功能和软件,但是它经常会遇到一些错误,那么win7开始菜单不见了怎么办呢,其实只要重启资源管理器就
- 电脑锁屏密码怎么设置?虽然是个很简单的问题,但是还有挺多小伙伴不会的,小编把详细的步骤教你,希望对你有帮助。电脑锁屏密码怎么设置?1、首先,
- 不少用户在使用Win7系统电脑的过程中,有些用户遇到了无法打开“任务管理器”的问题,任务管理器提供了有关计算机性能的信息,并显示了计算机上所
- 熟悉电脑的小伙伴都知道可以通过组策略来控制修改系统运行环境和软件权限等操作。那么,Win10如何打开组策略呢?下面,小编就来教教大家轻松打开
- 有不少小伙伴在windows预览体验计划中更新win11时,就遇到了下载过程一直卡在0%的情况,这可能是因为我们网络出现了状况,或者下载出现
- 在我们日常工作学习中,我们经常会需要用到使用Word文档给手机号码或者其他身份信息隐藏部分信息,用来保障我们的身份信息不会外泄,从而保障我们
- word怎么显示段落标记符号?在word文档中,段落标记就是文字后面的回车符号,那么如果要显示段落标记的话应该怎么操作?一起来看下word段