将 DataGrid 的数据保存为 Excel 文件(孟子E章)

转载 2008年01月15日 10:20:00
原文地址: http://www.code-studio.net/CSView.aspx?aid=157
下面的代码是出自孟子E章的,他用的是 ASP.NET 1.1 写的,但现在一般企业都转向 ASP.NET 2.0,为了方便新手,我就改为 ASP.NET 2.0了,希望孟子不要介意。:)

做为演示代码,程序里编程填充数据,不需要连接数据库。

文件名:Default3.aspx

.aspx
HTML CODE
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %> <!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:DataGrid ID="DataGrid1" runat="server" OnItemDataBound="DataGrid1_ItemDataBound"></asp:DataGrid> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="输出Excel" /></div> </form> </body> </html>


.cs
C# CODE
using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; public partial class Default3 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { DataGrid1.DataSource = CreateDataSource(); DataGrid1.DataBind(); } ICollection CreateDataSource() { DataTable dt = new DataTable(); DataRow dr; dt.Columns.Add(new DataColumn("身份证号码", typeof(string))); dt.Columns.Add(new DataColumn("图书单价", typeof(decimal))); dt.Columns.Add(new DataColumn("购买数量", typeof(Int32))); dt.Columns.Add(new DataColumn("总价格", typeof(decimal))); for (int i = 0; i < 30; i++) { dr = dt.NewRow(); dr[0] = "123456789123456789"; dr[1] = 100 * i / 3.0; dr[2] = i + 5; dr[3] = (decimal)dr[1] * (Int32)dr[2]; dt.Rows.Add(dr); } DataView dv = new DataView(dt); return dv; } protected void Button1_Click(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; Response.Charset = "GB2312"; Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls"); Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文 Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 this.EnableViewState = false; System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true); System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad); System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter); this.DataGrid1.RenderControl(oHtmlTextWriter); Response.Write(oStringWriter.ToString()); Response.End(); } protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { e.Item.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat:@"); e.Item.Cells[3].Attributes.Add("style", "vnd.ms-excel.numberformat:¥#,###.00"); } } }

相关文章推荐

PB数据窗口保存为Excel文件

  • 2009年03月24日 22:39
  • 673KB
  • 下载

在上传文件时限制上传文件的大小,并捕捉超过文件大小限制的异常(转:孟子E章)

在上传文件时限制上传文件的大小,并捕捉超过文件大小限制的异常 作者:孟宪会 阅读:1935 发表于:2010-09-05 11:09:08 在上传文件时,我们可以在web.config里设...

将数据窗口保存为Excel文件的方法

方法一:简单实用 string docname, named integer value value = GetFileSaveName("选择文件", & docname, named, "...
  • tlammon
  • tlammon
  • 2014年12月31日 21:05
  • 313

delphi7中如何把数据库中数据保存为excel文件

如果我们对delphi中的通常打印报表控件使用感到不方便的时候,则可以选择: 把数据库中的数据先保存到excel文件中,这样用户既保存了文件,又可以很方便的打印。 控件:ADOConnection...

MFC中将CListCtrl的数据保存为Excel文件

在开发软件时,经常要将数据输出到Excel 2000中,在Excel 2000中对该数据进行进一步地格式化处理或进行计算处理。在Visual Basic中处理起来较简单,Excel 2000的VB编程...

MATLAB海量数据读取access数据到excel并保存为shapefile文件

(1)      通过access数据库通过联立查询并生成新表 由于access只限制5万条记录,所以要通过MATLAB读取所有数据并保存到xlsx中去。 SELECT * INTO AA IN ...

把数据集保存为excel格式的一个实现_delphi教程

经常看到有人问如何把Delphi中的数据集导入Excel中,这里提供了一个实现。 在做项目时,很多情况下,客户需要对程序中数据集再加工,再利用,如报表。 这时,就需要把DataSet导入到一个...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:将 DataGrid 的数据保存为 Excel 文件(孟子E章)
举报原因:
原因补充:

(最多只允许输入30个字)