asp.net导入导出excel gridview导入到Excel 导出后只有gridview以外的数据,刚好没有gridview中的数据 代码如下:

所有回答(4)
/// &summary&/// 根据传入的控件并导出为Excel文件/// &/summary&/// &param name="source"&控件名&/param&/// &param name="filename"&导出文件名&/param&public void ExportExcel(System.Web.UI.Control source, string filename){&&& //设置Http的头信息,编码格式Excel&&& HttpContext.Current.Response.AppendHeader("Content-Disposition", "filename=" + HttpUtility.UrlEncode(filename + ".xls", System.Text.Encoding.UTF8));&&& HttpContext.Current.Response.ContentType = "application/ms-excel";&&& HttpContext.Current.Response.Charset = "UTF-8";&&& HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8;&&& //关闭控件的视图状态&&& source.Page.EnableViewState =&&& //初始化HtmlWriter&&& System.IO.StringWriter writer = new System.IO.StringWriter();&&& System.Web.UI.HtmlTextWriter htmlWriter = new System.Web.UI.HtmlTextWriter(writer);&&& source.RenderControl(htmlWriter);&&& //输出&&& HttpContext.Current.Response.Write(writer.ToString());&&& HttpContext.Current.Response.End();}
园豆:40785
园豆:40785
在Response.End();之前,增加下面的二句试试:
Response.ContentType = "text/html";
page.RegisterStartupScript("onload", "&script language=javascript&window.location=window.window.alert();&/script&");
园豆:4611
园豆:4611
迅雷的设置当中没有.xls这种格式的文件,所以下载不了。只能通过浏览器来下载了。。
一般情况下,迅雷会关联所有下载文件类型,
解决方案:
http://blog.csdn.net/ytc666/archive//4830828.aspx
园豆:25160
&&&您需要以后才能回答,未注册用户请先。& & [csharp]& & public override void VerifyRenderingInServerForm(Control control)& & { }& & protected void LinkButton2_Click(object sender, EventArgs e)& & {& & Response.Clear();& & Response.Buffer =& & Response.Charset = "gb2312";& & Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");& & Response.AppendHeader("content-disposition", "filename=\"" + System.Web.HttpUtility.UrlEncode("数据导出", System.Text.Encoding.UTF8) + ".xls\"");& & Response.ContentType = "Application/ms-excel";& & System.IO.StringWriter StringWriter = new System.IO.StringWriter();& & System.Web.UI.HtmlTextWriter HtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);& & this.Label1.RenderControl(oHtmlTextWriter);& & this.GridView1.RenderControl(oHtmlTextWriter);& & Response.Output.Write(oStringWriter.ToString());& & Response.Flush();& & Response.End();& & }
声明:该文章系网友上传分享,此内容仅代表网友个人经验或观点,不代表本网站立场和观点;若未进行原创声明,则表明该文章系转载自互联网;若该文章内容涉嫌侵权,请及时向
上一篇:下一篇:
相关经验教程
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.001 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.002 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.005 收益
的原创经验被浏览,获得 ¥0.001 收益记住登录一个月发表随想还能输入:200字该用户最新代码编程随想&by by by by by by [asp]代码库在页面上导入个excel文件,将该excel中的数据导入到数据库中,并且在页面的gridview中把数据显示出来.
1.在Asp.net中怎样将Excel文件中的数据导入到GridView中呢?
首先我们将这张表中的数据转换为DataTable类型的数据源,做一个函数来解决这个问题
private DataTable createDataSource(string strPath)
stringstrC
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strPath
+ ";Extended Properties=Excel 8.0";
OleDbConnectioncon = new OleDbConnection(strCon);
OleDbDataAdapterda = new OleDbDataAdapter("select * from [Sheet1$]", con);
DataTabledt = new DataTable();
da.Fill(dt);
只需要传入Excel文件的路径即可。
其次我们就是利用这个可以函数了。要想将客户端的Excel文件显示到客户端的GridView控件当中,这次都是客户端的东西,在我们的服务器端代码是无法做到的。所以我们必须把这个Excel文件暂时的保存到服务器,我们读取服务器端的文件才可以实现这样的功能。看下面的实现代码:
protected void Button1_Click(objectsender, EventArgs e)
//检查文件是否存在
if(FileUpload1.HasFile == false)//HasFile用来检查FileUpload是否有指定文件
Page.ClientScript.RegisterStartupScript(Page.GetType(),"message", "&script language='javascript' defer&alert('请您选择Excel文件!');&/script&");
//当无文件时,返回
stringfilename = DateTime.Now.ToString("yyyymmddhhMMss") +FileUpload1.FileN
//获取Execle文件名
DateTime日期函数
stringsavePath = Server.MapPath(("~/Doc/")+ filename);//Server.MapPath 获得虚拟服务器相对路径
//如果已经存在就清空
ClearFile(Server.MapPath("~/Doc/"));
FileUpload1.SaveAs(savePath);
//SaveAs将上传的文件内容保存在服务器上
DataTabledt = createDataSource(savePath);
GridView1.DataSource =
GridView1.DataBind();
在上面的代码中我们用到了一个函数ClearFile,它是用来清理文件夹的,我们将Excel文件暂时的存储到服务器端的一个文件夹中,只能暂时的存储,那么东西只会越来越多,而且这些东西也是一些没用的东西,很可能导致系统性能的下降。我们就是用这个函数来清理文件的,下面来一睹这个函数的精妙:
private void ClearFile(stringFilePath)
String[]files = System.IO.Directory.GetFiles(FilePath);
if(files.Length & 5)
for(int i = 0; i & 5; i++)
System.IO.File.Delete(files[i]);
分享到:更多发表评论:评论须知:1、评论每次加2分,每天上限为30;2、请文明用语,共同创建干净的技术交流环境;3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。&& & &今天在用GridView控件时,发现了一个问题,就是使用GridView控件在删除数据时的问题。接下来我们通过模板列方式和CommandField方式删除某条数据讲解下两者之间的区别。&& 方式一:通过模板列式删除数据& & & 案例:在页面中添加一个GridView控件,然后通过编辑列的方式为GridView添加对应的列。如下图:红色圈起的部分为模板列的删除列&&然后在编辑模板中拖一个删除按钮,如下图&& 接下来我们就可以编写代码了。& 找到GridView的RowCommand事件,如下图&& 然后在源视图下,添加如下三个重要的属性& &CommandName:命令的名称,值一般写成Delete,也可以写成其他名称,但是为了见名知意,我们写成Delete就ok& &CommandArgument:命令参数& &OnClientClick:注册客户端脚本,我们都知道,删除数据之前要给用户一个提示,可以通过该属性实现。如下图:&& & 接下来我们就可以在RowCommand中编写代码了& & & if (e.CommandName == "Delete") //如果是删除按钮&&&&&&& {&&&&&&&&&&& string stuNO = e.CommandArgument.ToString(); //获取学生编号&&&&&&&&&&& string sql = "delete from Student where studentno='" + stuNO + "'";&&&&&&&&&&& int result = SqlHelper.ExecuteNonQuery(sql, CommandType.Text);&&&&&&&&&&& if (result & 0)&&&&&&&&&&& {&&&&&&&&&&&&&&& Response.Write("&script type=text/javascript&alert('删除成功!')&/script&");&&&&&&&&&&&&&&& BindData();&&&&&&&&&&& }&&&&&&&&&&& else&&&&&&&&&&& {&&&&&&&&&&&&&&& Response.Write("&script type=text/javascript&alert('删除失败!')&/script&");&&&&&&&&&&& }&&&&&&& }& &这样我们就可以删除一条数据了。& & &方式二:CommandField实现删除某条数据& & & & 由于CommandField方式会引发RowDeleting事件,所以我们直接在GridView的RowDeleting事件中编写代码就可以了,代码如下:& & & string stuNo = GridView1.DataKeys[e.RowIndex].Value.ToString();&&&&&&& string sql = "delete from Student where studentno='" +stuNo+ "'";&&&&&&& int result = SqlHelper.ExecuteNonQuery(sql, CommandType.Text);&&&&&&& if (result & 0)&&&&&&& {&&&&&&&&&&& Response.Write("&script type=text/javascript&alert('删除成功!')&/script&");&&&&&&&&&&& BindData();&&&&&&& }&&&&&&& else&&&&&&& {&&&&&&&&&&& Response.Write("&script type=text/javascript&alert('删除失败!')&/script&");&&&&&&& }& & &最后我们对这两中方式的删除做个总结。& & & &模板列中通过按钮删除某条数据:& & & & & 01.不会引发RowDeleting事件& & & & & 02.需要给模板列设置CommandName和CommandArgument& & & & & 03.通过& string stuNO = e.CommandArgument.ToString();拿到主键&& 当然前提是在前台页面中用CommandArgument='&%# Bind("studentNo")%&'进行设置& & & 通过ComandField删除某条数据& & & & &1.& GridView1.DataKeyNames = new string[] { "StudentNo" };& & & & &2.既会触发RowCommand事件,又会触发RowDeleting事件,并且RowCommand事件& & & & & 会先被触发,这样的话就不能再同一个GridView中既用模板列删除,又用超链接删除!& & & & &3.获取主键方式: string stuNo=GridView1.DataKeys[e.RowIndex].Value.ToString();&&&&&&&& */& 注意:之所以可以通过GridView1.DataKeys[e.RowIndex].Value.ToString();获取到当前选中行的主键是因为为GridView设置了DataKeyNames。& & &好了,今天就先总结到这里。以后会陆续更新GridView的使用方法。如果这篇博文能给迷途中的你一丁点儿帮助,那便是极好的。特别是在这个推崇丢弃服务器端控件的时代。&已经到最后一张了!
GridView实用示例源码附加导出Excel功能
价格: 免费
累计评价:
源码目录结构图
GridViewDemo.dll[20KB]
GridViewDemo.pdb[15KB]
GridViewDB_Data.MDF[1MB]
GridViewDB_Log.LDF[1MB]
GridViewDemo.dll[20KB]
GridViewDemo.pdb[15KB]
Properties
GridViewDemo.csproj.user[1KB]
GridViewDemo.sln[1KB]
最新Asp.Net源码下载.url[125B]
GridView实用源码(可以导出Excel) VS2005中GridView的自定义分页,单选、多选、排序、自增列及可以导出Excel的简单应用源码多选时,只有全部选中时“多选”才选中数据库文件在DB_51aspx文件夹中,附加即可
责任编辑: 51Aspx
woxihuan28
(用户[下载于: 15:11])
xiaoliang131415
xingyingbuli
wenzhiyuan
51aspx(编辑)
可以直接免费下载的啊
南宫萧尘(用户)
在那个web.config里面修改
同类下载排行
对您有用的代码
数据库应用
ASP.NET MVC安装组件
Windows 云开发
常见技术问题
全国服务热线
运营中心:北京·中关村核心区

我要回帖

更多关于 asp.net gridview排序 的文章

 

随机推荐