.NET中怎么把Gridview中的值导出到Excel表格里?

就是我想把Gridview中的值导入到Excel的表格里面不知道可行有谁知道可以的话和我说下先谢过~~一楼你的方法我试了怎么不行啊是不是你少说了什么啊?我也初学这个,对这... 就是我想把Gridview中的值导入到Excel的表格里面 不知道可行 有谁知道可以的话 和我说下 先谢过~~
一楼你的方法我试了 怎么不行啊 是不是你少说了什么啊?我也初学这个,对这个Gridview导出Excel没有多少概念 如果你的方法行的通 还望详细说下 或是给个实际的例子也可以 感激不尽!
展开
 我来答
百度网友22f726cad
2009-06-19 · 超过25用户采纳过TA的回答
知道答主
回答量:91
采纳率:0%
帮助的人:0
展开全部
gridview可以包含中文,不出现乱码,决定可行!注意重载一下函数VerifyRenderingInServerForm为空即可,不然会出错!!
protected void BtnExport_Click(object sender, EventArgs e)
{
Response.Clear();
string FileName = "测试文件";

Response.ContentType = "application/ms-excel";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(FileName, Encoding.UTF8) + ".xls");
Response.ContentEncoding = System.Text.Encoding.UTF7;

GridView1.EnableViewState = false;
GridView1.AllowPaging = false;//导出前先取消分页,以便能将所有数据导出
GridView1.DataBind();//再重新绑定一次数据

System.IO.StringWriter stringWrite = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
GridView1.RenderControl(htmlWrite);
Response.Write(stringWrite.ToString());
Response.End();

GridView1.AllowPaging = true;//导出后先取消分页,以便能将所有数据导出。
GridView1.DataBind();//再重新绑定一次数据

}
public override void VerifyRenderingInServerForm(Control control)

{

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Play_nada
2009-06-20 · TA获得超过129个赞
知道答主
回答量:46
采纳率:0%
帮助的人:42.3万
展开全部
页面的html里添加 EnableEventValidation="false"
(<%@ Page Language="C#" AutoEventWireup="true" CodeFile="FlowInfo_List.aspx.cs" Inherits="Flow_FlowInfo_List" EnableEventValidation="false"%>")

//不加这个,会提示--“类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内。”放在 runat=server 的窗体标记内也会提示!
public override void VerifyRenderingInServerForm(Control control)
{
}
protected void btnOut_Click(object sender, EventArgs e)
{
this.GridView1.ShowHeader = true;
string ExcelName =DateTime.Now.ToShortDateString();

GridView1.PageIndex = 0;

// 必须关闭分页
GridView1.AllowPaging = false;
//重新填充gridView
this.Fill();

this.GridView1.Columns[0].Visible = false;

string style = @"<meta http-equiv=Content-Type content=text/html;charset=GB2312; ><style> .text { mso-number-format:\@; } </script>";
HttpContext.Current.Response.Charset = "GB2312";
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(ExcelName, Encoding.UTF8).ToString() + ".xls");
HttpContext.Current.Response.ContentType = "application/ms-excel";

StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
GridView1.RenderControl(hw); //this代表导出整个页面,GridView1(GV的ID).RenderControl(hw)代表只导出GV的
this.GridView1.ShowHeader = true;
Response.Write(style);
HttpContext.Current.Response.Write(tw.ToString());
HttpContext.Current.Response.End();
}

这就是最详细的,你绝对有地方写错了`我前两天还用过一次
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
HAL9000PLUS
2009-06-19 · TA获得超过1279个赞
知道小有建树答主
回答量:663
采纳率:0%
帮助的人:713万
展开全部
可以这么干:“点击下载”按钮导致跳转到另一个网页(B.ASPX), 在B.aspx里只放一个gridview, 其他的什么都不放。

在page_load里写:
1.数据绑定的代码。
2.把respone的mimetype的属性设为 application/ms-excel,似乎是用ContentType属性。
3.增加一个http head来说明这是一个文件,不然IE会DDE excel来显示而不是下载。如下:
Content-Disposition=attachment;filename=abcde.xls

网上有更详细的例子。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友638b535
2009-06-19 · TA获得超过234个赞
知道小有建树答主
回答量:268
采纳率:0%
帮助的人:328万
展开全部
你可以参考下面的牛人写的文章。
http://blog.csdn.net/21aspnet/archive/2007/03/25/1540301.aspx
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式