从gridview里导出到EXCEL文件vb.net和C#代码

''vb.net源码

<%@ Page Language="VB" %>

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

<script runat="server">
Function CreateDataSource()Function CreateDataSource() As ICollection 
 
Dim dt As System.Data.DataTable = New System.Data.DataTable 
 
Dim dr As System.Data.DataRow 
 dt.Columns.Add(
New System.Data.DataColumn("id"GetType(Int32))) 
 dt.Columns.Add(
New System.Data.DataColumn("PkID"GetType(String))) 
 dt.Columns.Add(
New System.Data.DataColumn("Title"GetType(String))) 
 
Dim i As Integer = 0 
 
While i < 6 
   dr 
= dt.NewRow 
   dr(
0= i 
   dr(
1= "123456789123456789123456789" 
   dr(
2= "<a href='http://dotnet.aspx.cc/'>欢迎光临【孟宪会之精彩世界】</a>" 
   dt.Rows.Add(dr) 
   System.Math.Min(System.Threading.Interlocked.Increment(i),i
-1
 
End While 
 
Dim dv As System.Data.DataView = New System.Data.DataView(dt) 
 
Return dv 
End Function
 

Protected Sub Page_Load()Sub Page_Load(ByVal sender As ObjectByVal e As EventArgs) 
 
If Not IsPostBack Then 
   GridView1.BorderWidth 
= Unit.Pixel(2
   GridView1.BorderColor 
= System.Drawing.Color.DarkOrange 
   GridView1.DataSource 
= CreateDataSource 
   GridView1.DataBind 
 
End If 
End Sub
 

Protected Sub Button1_Click()Sub Button1_Click(ByVal sender As ObjectByVal e As System.EventArgs) 
 Response.Clear 
 Response.Buffer 
= True 
 Response.Charset 
= "GB2312" 
 Response.AppendHeader(
"Content-Disposition""attachment;filename=FileName.xls"
 Response.ContentEncoding 
= System.Text.Encoding.UTF7 
 Response.ContentType 
= "application/ms-excel" 
 
Dim oStringWriter As System.IO.StringWriter = New System.IO.StringWriter 
 
Dim oHtmlTextWriter As System.Web.UI.HtmlTextWriter = New System.Web.UI.HtmlTextWriter(oStringWriter) 
 
Me.GridView1.RenderControl(oHtmlTextWriter) 
 Response.Output.Write(oStringWriter.ToString) 
 Response.Flush 
 Response.End 
End Sub
 

Public Overloads Overrides Sub VerifyRenderingInServerForm()Sub VerifyRenderingInServerForm(ByVal control As Control) 
End Sub
 

Protected Sub GridView1_RowDataBound()Sub GridView1_RowDataBound(ByVal sender As ObjectByVal e As GridViewRowEventArgs) 
 
If e.Row.RowType = DataControlRowType.DataRow Then 
   e.Row.Cells(
1).Attributes.Add("style""vnd.ms-excel.numberformat:@;"
 
End If 
End Sub


</script>


<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
  
<title>将 GridView 导出到 Excel 文件中</title>
</head>
<body>
  
<form id="form1" runat="server">
    
<asp:GridView ID="GridView1" runat="server" OnRowDataBound="GridView1_RowDataBound"
      AutoGenerateColumns
="false">
      
<Columns>
        
<asp:BoundField HeaderText="序号" DataField="id" />
        
<asp:BoundField HeaderText="身份证号" DataField="PkID" />
        
<asp:BoundField HeaderText="网址" DataField="Title" ReadOnly="true" HtmlEncode="false" />
      
</Columns>
    
</asp:GridView>
    
<asp:Literal ID="HiddenOut" runat="server" />
    
<asp:Button ID="Button1" runat="server" Text="导出" OnClick="Button1_Click" />
  
</form>
</body>
</html>

 


// C#源码

<% @ Page Language = " C# "  EnableEventValidation = " false "   %>

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

< script runat = " server " >
  ICollection CreateDataSource( )
  
... {
    System.Data.DataTable dt 
= new System.Data.DataTable();
    System.Data.DataRow dr;
    dt.Columns.Add(
new System.Data.DataColumn("id"typeof(Int32)));
    dt.Columns.Add(
new System.Data.DataColumn("PkID"typeof(string)));
    dt.Columns.Add(
new System.Data.DataColumn("Title"typeof(string)));
    
for (int i = 0; i < 6; i++)
    
...{
      dr 
= dt.NewRow();
      dr[
0= i;
      dr[
1= "123456789123456789123456789";
      dr[
2= "<a href='http://dotnet.aspx.cc/'>欢迎光临【孟宪会之精彩世界】</a>";
      dt.Rows.Add(dr);
    }

    System.Data.DataView dv 
= new System.Data.DataView(dt);
    
return dv;
  }


  
protected   void  Page_Load(  object  sender, EventArgs e )
  
... {
    
if (!IsPostBack)
    
...{
      GridView1.BorderWidth 
= Unit.Pixel(2);
      GridView1.BorderColor 
= System.Drawing.Color.DarkOrange;
      GridView1.DataSource 
= CreateDataSource();
      GridView1.DataBind();
    }

  }


  
protected   void  Button1_Click(  object  sender, System.EventArgs e )
  
... {
    Response.Clear();
    Response.Buffer 
= true;
    Response.Charset 
= "GB2312";
    Response.AppendHeader(
"Content-Disposition""attachment;filename=FileName.xls");
    
// 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!
    Response.ContentEncoding = System.Text.Encoding.UTF7;
    Response.ContentType 
= "application/ms-excel";//设置输出文件类型为excel文件。 
    System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter oHtmlTextWriter 
= new System.Web.UI.HtmlTextWriter(oStringWriter);
    
this.GridView1.RenderControl(oHtmlTextWriter);
    Response.Output.Write(oStringWriter.ToString());
    Response.Flush();
    Response.End();

  }

  
public   override   void  VerifyRenderingInServerForm( Control control )
  
... { }
  
protected   void  GridView1_RowDataBound(  object  sender, GridViewRowEventArgs e )
  
... {
    
if (e.Row.RowType == DataControlRowType.DataRow)
    
...{
      e.Row.Cells[
1].Attributes.Add("style""vnd.ms-excel.numberformat:@;");
    }

  }

</ script >

< html xmlns = " http://www.w3.org/1999/xhtml " >
< head runat = " server " >
  
< title > 将 GridView 导出到 Excel 文件中 </ title >
</ head >
< body >
  
< form id = " form1 "  runat = " server " >
    
< asp:GridView ID = " GridView1 "  runat = " server "  OnRowDataBound = " GridView1_RowDataBound "
      AutoGenerateColumns
= " false " >
      
< Columns >
        
< asp:BoundField HeaderText = " 序号 "  DataField = " id "   />
        
< asp:BoundField HeaderText = " 身份证号 "  DataField = " PkID "   />
        
< asp:BoundField HeaderText = " 网址 "  DataField = " Title "  ReadOnly = " true "  HtmlEncode = " false "   />
      
</ Columns >
    
</ asp:GridView >
    
< asp:Literal ID = " HiddenOut "  runat = " server "   />
    
< asp:Button ID = " Button1 "  runat = " server "  Text = " 导出 "  OnClick = " Button1_Click "   />
  
</ form >
</ body >
</ html >
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值