私人资料库
本博客大部分技术文章,均从网络搜索得来,旨在收集整理技术资料,文章版权归属原作者,由此引起的任何版权问题,与本人无关。

【转自】http://hi.baidu.com/afawwb/blog/item/b274e48fcf175dedf01f3695.html

 

直接写到一个excel文件里面去让客户直接下载excel,于是稍微修改了下别人的源码,直接生成Excel文件来让客户下载,演示源代码如下:

WebForm4.aspx----Html部分:

程序代码:

 1<%@ Page language="c#" Codebehind="WebForm4.aspx.cs" AutoEventWireup="false" Inherits="WebUI.WebForm4" %>
 2<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
 3<HTML>
 4<HEAD>
 5   <title>WebForm4</title>
 6   <meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
 7   <meta name="CODE_LANGUAGE" Content="C#">
 8   <meta name="vs_defaultClientScript" content="JavaScript">
 9   <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
10</HEAD>
11<body MS_POSITIONING="GridLayout">
12   <form id="Form1" method="post" runat="server">
13    <asp:datagrid id="DataGrid1" runat="server" width="100%">
14     <ItemStyle HorizontalAlign="Center"></ItemStyle>
15     <HeaderStyle HorizontalAlign="Center"></HeaderStyle>
16     <FooterStyle HorizontalAlign="Center"></FooterStyle>
17     <PagerStyle PageButtonCount="15" Mode="NumericPages"></PagerStyle>
18    </asp:datagrid>
19    <asp:Button id="Button1" style="Z-INDEX: 101; LEFT: 32px; POSITION: absolute; TOP: 152px" runat="server"
20     Text="Button"></asp:Button>
21   </form>
22</body>
23</HTML>

 

页面上就一个DataGrid和一个按钮,按钮用来触发将数据到Excel,后台的其他代码也就不弄上来了,下面是那个关键的按钮事件

程序代码:

 1private void Button1_Click(object sender, System.EventArgs e)
 2{
 3DataTable SourceTb = new DataTable();
 4DataColumn myDataColumn;
 5
 6myDataColumn    = new DataColumn();
 7myDataColumn.DataType = System.Type.GetType("System.String");
 8myDataColumn.ColumnName = "RowIndex";   //序   号
 9SourceTb.Columns.Add(myDataColumn);
10
11myDataColumn    = new DataColumn();
12myDataColumn.DataType = System.Type.GetType("System.String");
13myDataColumn.ColumnName = "CheckUpManName"//审批人
14SourceTb.Columns.Add(myDataColumn);
15
16myDataColumn    = new DataColumn();
17myDataColumn.DataType = System.Type.GetType("System.String");
18myDataColumn.ColumnName = "CheckUpIdeas"//审批意见
19SourceTb.Columns.Add(myDataColumn);
20
21myDataColumn    = new DataColumn();
22myDataColumn.DataType = System.Type.GetType("System.String");
23myDataColumn.ColumnName = "CheckUpDate"//审批时间
24SourceTb.Columns.Add(myDataColumn);
25
26myDataColumn    = new DataColumn();
27myDataColumn.DataType = System.Type.GetType("System.String");
28myDataColumn.ColumnName = "CheckUpRole"//审批岗位
29SourceTb.Columns.Add(myDataColumn);
30
31myDataColumn    = new DataColumn();
32myDataColumn.DataType = System.Type.GetType("System.String");
33myDataColumn.ColumnName = "HandleType";   //操作类型(1:提交| 9:驳回)
34SourceTb.Columns.Add(myDataColumn);
35
36DataRow myDataRow;
37for(int i = 0;i < 30;i ++)
38{
39   myDataRow      = SourceTb.NewRow();
40   myDataRow["RowIndex"]   = i.ToString();
41   myDataRow["CheckUpManName"= "张三";
42   myDataRow["CheckUpIdeas"= "同意";
43   myDataRow["CheckUpDate"= "2006-03-20";
44   myDataRow["CheckUpRole"= "物资部主任";
45   SourceTb.Rows.Add(myDataRow);
46}

47
48//绑定数据到DataGrid1
49this.DataGrid1.DataSource = SourceTb.DefaultView;
50this.DataGrid1.DataBind();
51//将DataGrid1构成的html代码写进StringWriter
52this.DataGrid1.Page.EnableViewState = false;
53System.IO.StringWriter   tw    = new System.IO.StringWriter();
54System.Web.UI.HtmlTextWriter hw   = new System.Web.UI.HtmlTextWriter(tw);
55this.DataGrid1.RenderControl(hw);
56string HtmlInfo = tw.ToString().Trim();
57
58string DocFileName = "审批信息.xls";
59string FilePathName = Request.PhysicalPath;
60FilePathName   = FilePathName.Substring(0,FilePathName.LastIndexOf("\\"));
61//得到Excel文件的物理地址
62FilePathName   = FilePathName +"\\" + DocFileName;
63System.IO.File.Delete(FilePathName);
64FileStream Fs   = new FileStream(FilePathName, FileMode.Create);
65BinaryWriter BWriter= new BinaryWriter(Fs,System.Text.Encoding.GetEncoding("GB18030"));
66//将DataGrid的信息写入Excel文件
67BWriter.Write(HtmlInfo);
68BWriter.Close();
69Fs.Close();
70}

 

 好了,写入信息到Excel文件成功了,至于说生成的Excel文件在哪里,大家一看就应该知道,要下载的话,也就是很简单的<a href='Excel文件路径'>文件下载</a>咯。

 

posted on 2008-10-28 14:15  该显示名称已被其他用户使用  阅读(212)  评论(0)    收藏  举报