(一)?. 運行示例圖
?1. 待導出數據的GridView圖:
2. 生成的Excel文件
(二). 代碼
?1. 前臺頁面 GridViewToExcelFile.aspx 代碼:
?1
<%@?Page?Language="C#"?AutoEventWireup="true"?EnableEventValidation="false"?CodeFile="GridViewToExcelFile.aspx.cs"?Inherits="_Default"?%>
?2
?3
<!DOCTYPE?html?PUBLIC?"-//W3C//DTD?XHTML?1.0?Transitional//EN"?"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
?4
?5
<html?xmlns="http://www.w3.org/1999/xhtml"?>
?6
<head?runat="server">
?7
????<title>Untitled?Page</title>
?8
</head>
?9
<body>
10
????<form?id="form1"?runat="server">
11
????<div>
12
????????<asp:GridView?ID="gvFoods"?runat="server"?BackColor="LightGoldenrodYellow"?BorderColor="Tan"?BorderWidth="1px"?CellPadding="2"?ForeColor="Black"?GridLines="None"?EnableViewState="true">
13
????????????<FooterStyle?BackColor="Tan"?/>
14
????????????<SelectedRowStyle?BackColor="DarkSlateBlue"?ForeColor="GhostWhite"?/>
15
????????????<PagerStyle?BackColor="PaleGoldenrod"?ForeColor="DarkSlateBlue"?HorizontalAlign="Center"?/>
16
????????????<HeaderStyle?BackColor="Tan"?Font-Bold="True"?/>
17
????????????<AlternatingRowStyle?BackColor="PaleGoldenrod"?/>
18
????????</asp:GridView>
19
????????<br?/>
20
????????<asp:Button?ID="Button1"?runat="server"?BackColor="#C0C0FF"?OnClick="Button1_Click"
21
????????????Text="Create?Excel"?Width="137px"?/>
22
????</div>
23
????</form>
24
</body>
25
</html>

?2

?3

?4

?5

?6

?7

?8

?9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

?2. 頁面后臺文件 GridViewToExcelFile.aspx.cs 代碼:
??1?using?System;
??2?using?System.Data;
??3?using?System.Configuration;
??4?using?System.Web;
??5?using?System.Web.Security;
??6?using?System.Web.UI;
??7?using?System.Web.UI.WebControls;
??8?using?System.Web.UI.WebControls.WebParts;
??9?using?System.Web.UI.HtmlControls;
?10?using?System.IO;
?11?using?System.Text;
?12?using?System.Collections;
?13?
?14?public?partial?class?_Default?:?System.Web.UI.Page?
?15?{
?16?????protected?void?Page_Load(object?sender,?EventArgs?e)
?17?????{
?18????????if(!Page.IsPostBack)
?19????????{
?20???????????CreateStructure();
?21???????????this.gvFoods.DataSource?=?this.CreateData();
?22???????????this.gvFoods.DataBind();
?23????????}
?24?????}
?25????private?DataTable?CreateStructure()
?26????{
?27???????DataTable?dt?=?new?DataTable();
?28???????dt.Columns.Add(new?DataColumn("CategoryID",?typeof(int)));
?29???????dt.Columns.Add(new?DataColumn("CategoryName",?typeof(string)));
?30???????dt.Columns.Add(new?DataColumn("Price",?typeof(int)));??????
?31???????return?dt;
?32????}
?33????public?DataSet?CreateData()
?34????{
?35???????DataSet?ds?=?new?DataSet();
?36???????DataTable?dt?=?this.CreateStructure();
?37?
?38???????DataRow?drNew?=?dt.NewRow();??????
?39???????drNew?=?dt.NewRow();
?40???????drNew["CategoryID"]?=?1;
?41???????drNew["CategoryName"]?=?"Apple";
?42???????drNew["Price"]?=?2;
?43???????dt.Rows.Add(drNew);
?44?
?45???????drNew?=?dt.NewRow();
?46???????drNew["CategoryID"]?=?2;
?47???????drNew["CategoryName"]?=?"Banana";
?48???????drNew["Price"]?=?3;
?49???????dt.Rows.Add(drNew);
?50?
?51???????drNew?=?dt.NewRow();
?52???????drNew["CategoryID"]?=?3;
?53???????drNew["CategoryName"]?=?"Orange";
?54???????drNew["Price"]?=?1;
?55???????dt.Rows.Add(drNew);
?56?
?57???????drNew?=?dt.NewRow();
?58???????drNew["CategoryID"]?=?4;
?59???????drNew["CategoryName"]?=?"Radish";
?60???????drNew["Price"]?=?2;
?61???????dt.Rows.Add(drNew);
?62?
?63???????drNew?=?dt.NewRow();
?64???????drNew["CategoryID"]?=?5;
?65???????drNew["CategoryName"]?=?"Pen";
?66???????drNew["Price"]?=?3;
?67???????dt.Rows.Add(drNew);
?68?
?69???????drNew?=?dt.NewRow();
?70???????drNew["CategoryID"]?=?6;
?71???????drNew["CategoryName"]?=?"Pencil";
?72???????drNew["Price"]?=?7;
?73???????dt.Rows.Add(drNew);
?74?
?75???????drNew?=?dt.NewRow();
?76???????drNew["CategoryID"]?=?7;
?77???????drNew["CategoryName"]?=?"Ruler";
?78???????drNew["Price"]?=?3;
?79???????dt.Rows.Add(drNew);
?80?
?81???????drNew?=?dt.NewRow();
?82???????drNew["CategoryID"]?=?8;
?83???????drNew["CategoryName"]?=?"Eraser";
?84???????drNew["Price"]?=?5;
?85???????dt.Rows.Add(drNew);
?86?
?87???????ds.Tables.Add(?dt?);
?88???????return?ds;
?89????}
?90????protected?void?Button1_Click(object?sender,?EventArgs?e)
?91????{?????
?92???????StringWriter?sw?=?new?StringWriter();
?93???????HtmlTextWriter?htw?=?new?HtmlTextWriter(sw);
?94???????this.gvFoods.RenderControl(htw);
?95???????string?strHtml?=?sw.ToString().Trim();
?96?
?97???????string?ExcelFileName?=?"FoodList.xls";
?98???????string?FilePhysicialPathName?=?Request.PhysicalApplicationPath;??????
?99???????
100???????//生成的Excel文件名
101???????string?objectExcelFileName?=?Path.Combine(FilePhysicialPathName,?ExcelFileName);
102?
103???????if(?File.Exists(?objectExcelFileName?))
104???????{
105??????????File.Delete(objectExcelFileName);
106???????}
107???????FileStream?fs?=?new?FileStream(objectExcelFileName,?FileMode.Create);
108???????BinaryWriter?bw?=?new?BinaryWriter(fs,?Encoding.GetEncoding("GB18030"));
109???????bw.Write(strHtml);
110???????bw.Close();
111???????fs.Close();
112?
113????}
114????public?override?void?VerifyRenderingInServerForm(Control?control)
115????{
116???????//base.VerifyRenderingInServerForm(control);
117????}??
118?}
119?
??2?using?System.Data;
??3?using?System.Configuration;
??4?using?System.Web;
??5?using?System.Web.Security;
??6?using?System.Web.UI;
??7?using?System.Web.UI.WebControls;
??8?using?System.Web.UI.WebControls.WebParts;
??9?using?System.Web.UI.HtmlControls;
?10?using?System.IO;
?11?using?System.Text;
?12?using?System.Collections;
?13?
?14?public?partial?class?_Default?:?System.Web.UI.Page?
?15?{
?16?????protected?void?Page_Load(object?sender,?EventArgs?e)
?17?????{
?18????????if(!Page.IsPostBack)
?19????????{
?20???????????CreateStructure();
?21???????????this.gvFoods.DataSource?=?this.CreateData();
?22???????????this.gvFoods.DataBind();
?23????????}
?24?????}
?25????private?DataTable?CreateStructure()
?26????{
?27???????DataTable?dt?=?new?DataTable();
?28???????dt.Columns.Add(new?DataColumn("CategoryID",?typeof(int)));
?29???????dt.Columns.Add(new?DataColumn("CategoryName",?typeof(string)));
?30???????dt.Columns.Add(new?DataColumn("Price",?typeof(int)));??????
?31???????return?dt;
?32????}
?33????public?DataSet?CreateData()
?34????{
?35???????DataSet?ds?=?new?DataSet();
?36???????DataTable?dt?=?this.CreateStructure();
?37?
?38???????DataRow?drNew?=?dt.NewRow();??????
?39???????drNew?=?dt.NewRow();
?40???????drNew["CategoryID"]?=?1;
?41???????drNew["CategoryName"]?=?"Apple";
?42???????drNew["Price"]?=?2;
?43???????dt.Rows.Add(drNew);
?44?
?45???????drNew?=?dt.NewRow();
?46???????drNew["CategoryID"]?=?2;
?47???????drNew["CategoryName"]?=?"Banana";
?48???????drNew["Price"]?=?3;
?49???????dt.Rows.Add(drNew);
?50?
?51???????drNew?=?dt.NewRow();
?52???????drNew["CategoryID"]?=?3;
?53???????drNew["CategoryName"]?=?"Orange";
?54???????drNew["Price"]?=?1;
?55???????dt.Rows.Add(drNew);
?56?
?57???????drNew?=?dt.NewRow();
?58???????drNew["CategoryID"]?=?4;
?59???????drNew["CategoryName"]?=?"Radish";
?60???????drNew["Price"]?=?2;
?61???????dt.Rows.Add(drNew);
?62?
?63???????drNew?=?dt.NewRow();
?64???????drNew["CategoryID"]?=?5;
?65???????drNew["CategoryName"]?=?"Pen";
?66???????drNew["Price"]?=?3;
?67???????dt.Rows.Add(drNew);
?68?
?69???????drNew?=?dt.NewRow();
?70???????drNew["CategoryID"]?=?6;
?71???????drNew["CategoryName"]?=?"Pencil";
?72???????drNew["Price"]?=?7;
?73???????dt.Rows.Add(drNew);
?74?
?75???????drNew?=?dt.NewRow();
?76???????drNew["CategoryID"]?=?7;
?77???????drNew["CategoryName"]?=?"Ruler";
?78???????drNew["Price"]?=?3;
?79???????dt.Rows.Add(drNew);
?80?
?81???????drNew?=?dt.NewRow();
?82???????drNew["CategoryID"]?=?8;
?83???????drNew["CategoryName"]?=?"Eraser";
?84???????drNew["Price"]?=?5;
?85???????dt.Rows.Add(drNew);
?86?
?87???????ds.Tables.Add(?dt?);
?88???????return?ds;
?89????}
?90????protected?void?Button1_Click(object?sender,?EventArgs?e)
?91????{?????
?92???????StringWriter?sw?=?new?StringWriter();
?93???????HtmlTextWriter?htw?=?new?HtmlTextWriter(sw);
?94???????this.gvFoods.RenderControl(htw);
?95???????string?strHtml?=?sw.ToString().Trim();
?96?
?97???????string?ExcelFileName?=?"FoodList.xls";
?98???????string?FilePhysicialPathName?=?Request.PhysicalApplicationPath;??????
?99???????
100???????//生成的Excel文件名
101???????string?objectExcelFileName?=?Path.Combine(FilePhysicialPathName,?ExcelFileName);
102?
103???????if(?File.Exists(?objectExcelFileName?))
104???????{
105??????????File.Delete(objectExcelFileName);
106???????}
107???????FileStream?fs?=?new?FileStream(objectExcelFileName,?FileMode.Create);
108???????BinaryWriter?bw?=?new?BinaryWriter(fs,?Encoding.GetEncoding("GB18030"));
109???????bw.Write(strHtml);
110???????bw.Close();
111???????fs.Close();
112?
113????}
114????public?override?void?VerifyRenderingInServerForm(Control?control)
115????{
116???????//base.VerifyRenderingInServerForm(control);
117????}??
118?}
119?