asp.net gridview导出excel

mychenweili 2012-12-10 02:19:54
asp.net gridview导出excel用户可以自己选择路径 ,重命名,,求方法,求代码
SOS
...全文
235 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Name_456 2012-12-10
  • 打赏
  • 举报
回复

<%@ Page Language="C#" AutoEventWireup="true"  EnableEventValidation = "false" CodeFile="DropDownLIst.aspx.cs" Inherits="_20100608_Default" %>

<%@ Register assembly="AspNetPager" namespace="Wuqi.Webdiyer" tagprefix="webdiyer" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="grd" runat="server" BackColor="White" BorderColor="#E7E7FF" 
BorderStyle="None" BorderWidth="1px" CellPadding="3" 
GridLines="Horizontal" AutoGenerateColumns="False">
<RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C"  />
<Columns>


<asp:BoundField DataField="ID" />
<asp:BoundField DataField="Name" />
<asp:TemplateField>
<ItemTemplate>
<asp:DropDownList  runat="server" ID="ddl" Width="50px"  AutoPostBack="true">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem Selected="True">2</asp:ListItem>
</asp:DropDownList></ItemTemplate>
</asp:TemplateField >
<asp:TemplateField HeaderText="123">
<ItemTemplate>
<asp:TextBox ID="txt" runat="server" ></asp:TextBox></ItemTemplate>
</asp:TemplateField>

</Columns>
<FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
<PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />
<SelectedRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
<HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
<AlternatingRowStyle BackColor="#F7F7F7" />
</asp:GridView>
<asp:Button ID="btnDataToExcel" runat="server" Text="导入Excel" Width="166px" 
onclick="btnDataToExcel_Click"  />
<webdiyer:AspNetPager ID="PagerNet" runat="server"  PageSize="5" 
onpagechanged="PagerNet_PageChanged">
</webdiyer:AspNetPager>
</div>
</form>
</body>
</html>
、、后台代码
public partial class _20100608_Default : System.Web.UI.Page
{
DataSet ds=DBAccess.ExecuteDataset("Select row_number() over(order by Id) as num, * from person");
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
OnBind();
}
}
private void OnBind()
{
PagerNet.RecordCount= 12;
DataView  tb = ds.Tables[0].DefaultView;
    tb.RowFilter = "num >= " + PagerNet.StartRecordIndex+" and  num <= " +PagerNet.EndRecordIndex ;
//grd.DataSource = DBAccess.ExecuteDataset("select * from (Select row_number() over(order by Id) as num, * from xls) n  where  n.num between " + PagerNet.StartRecordIndex + "and " + PagerNet.EndRecordIndex);
grd.DataSource = tb;
grd.DataBind();
for (int j = 0; j < grd.Rows.Count; j++)
{
DropDownList drp = grd.Rows[j].FindControl("ddl") as DropDownList;
drp.Items.Insert(0,"AA");
}
}
public void DisableControls(GridView gv)
{
for (int i = 0; i < gv.Rows.Count; i++)
{
DropDownList drp = grd.Rows[i].FindControl("ddl") as DropDownList;
Label lb = new Label();
lb.Text = drp.SelectedItem.Text;
grd.Rows[i].Cells[2].Controls.Add(lb);
grd.Rows[i].Cells[2].Controls.RemoveAt(1); ;
TextBox txt = grd.Rows[i].FindControl("txt") as TextBox;
lb = new Label();
lb.Text = txt.Text;
grd.Rows[i].Cells[3].Controls.Add(lb);
grd.Rows[i].Cells[3].Controls.RemoveAt(1); ;
}
}

protected void btnDataToExcel_Click(object sender, EventArgs e)
{
StringWriter objStringWriter = new StringWriter();
HtmlTextWriter objHtmlTextWriter = new HtmlTextWriter(objStringWriter);
this.grd.AllowPaging = false;
grd.DataSource = ds;
grd.DataBind();
DisableControls(grd);
grd.RenderControl(objHtmlTextWriter);
string style = @"<html><head><meta http-equiv=""Content-Type"" content=""text/html; charset=utf-8"" /><style> .text { mso-number-format:\@; } </style></head><body>";
Response.Clear();
Response.Buffer = true;
Response.AppendHeader("Content-Disposition", "attachment;filename=123.xls");
Response.ContentType = "application/ms-excel ";
Response.Write(style);
Response.Write(objStringWriter.ToString());
Response.Write("</body></html>");
Response.End();
OnBind();
}
public override void VerifyRenderingInServerForm(System.Web.UI.Control control)
{
//== 處理 GridView的控制項。 'GridView' 必須置於有 runat=server 的表單標記之中
//== http://msdn.microsoft.com/zh-tw/library/system.web.ui.page.verifyrenderinginserverform(VS.80).aspx
//—註解:或是在 Web.Config檔案裡面,增加這一行<pages enableEventValidation ="false" ></pages> 就可以免除上面這個事件。
}
protected void PagerNet_PageChanged(object sender, EventArgs e)
{
OnBind();
}
}


mychenweili 2012-12-10
  • 打赏
  • 举报
回复
引用 3 楼 patric05034 的回复:
http://www.cnblogs.com/stswordman/archive/2006/08/24/485641.html


最好能出现这么个情况的。。。可以选择路径和重命名的
taozi_5188 2012-12-10
  • 打赏
  • 举报
回复
引用
你随便从百度输入 GRidView 导出 Excel,资料N多,还都带解释的
Bule 2012-12-10
  • 打赏
  • 举报
回复
http://www.cnblogs.com/stswordman/archive/2006/08/24/485641.html
hard_learner 2012-12-10
  • 打赏
  • 举报
回复
你随便从百度输入 GRidView 导出 Excel,资料N多,还都带解释的
山鹰 2012-12-10
  • 打赏
  • 举报
回复
http://www.51aspx.com/Code/DtocsvRtoDataset 看看这个 源码

62,075

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧