天天看点

ASP.NET导出数据到Excel

璇ユ?规???????asp.net椤甸???瀛???html椤甸?㈠????????缂??逛负xlc涓?杩?excel??浠ヨ?诲??锛??ヤ?杩???????杩????????瑰??藉?煎?烘?版??锛?骞跺?╃?ㄦā????????

涓??㈡??浠g??

?挎?板缓涓?涓?asp.ne??tweb搴??ㄧ?搴???浠g??绮?璐磋??诲氨濂戒?

html椤甸??唬??

<%@ Page language="c#" Codebehind="OutExcel.aspx.cs" AutoEventWireup="false" Inherits="eMeng.Exam.OutPutExcel" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >

<HTML>

<HEAD>

<title>OutPutExcel</title>

</HEAD>

<body>

<form id="Form1" method="post" runat="server">

<asp:datagrid id="DataGrid1" runat="server">

<Columns>

<asp:BoundColumn></asp:BoundColumn>

</Columns>

</asp:datagrid>

<P>

<asp:Label id="Label1" runat="server">??浠跺??锛?</asp:Label>

<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>

<asp:button id="Button1" runat="server" Text="杈??哄??xcel"></asp:button></P>

</form>

</body>

</HTML>

?ヤ??ユ??cs椤甸?㈤????浠g??

using System;

using System.Collections;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Web;

using System.Web.SessionState;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.HtmlControls;

using System.Data.SqlClient;

namespace eMeng.Exam

{

/// <summary>

/// OutPutExcel ????瑕?璇存????

/// </summary>

public class OutPutExcel : System.Web.UI.Page

{

protected System.Web.UI.WebControls.Button Button1;

protected System.Web.UI.WebControls.DataGrid DataGrid1;

protected System.Web.UI.WebControls.TextBox TextBox1;

protected System.Web.UI.WebControls.Label Label1;

private DataSet myDS =new DataSet();

private void Page_Load(object sender, System.EventArgs e)

{

// ?ㄦ?ゅ??剧疆?ㄦ?蜂唬??浠ュ??濮???椤甸??

if(!Page.IsPostBack)

{

Data_Load();//璋??ㄦ?规?濉???琛ㄦ??

}

}

/// <summary>

/// ??寤烘?版??婧?

/// </summary>

/// <returns>DataView</returns>

private void Data_Load()

{

//?版??搴?杩??ュ??绗?覆Catalog涓烘??瀹????版??搴???绉帮?DataSource涓鸿?杩??ョ??SQL???″?ㄥ??绉?

string myConn ="User Id=sa;Password=sa;Initial Catalog=test;Data Source=zxb;Connect Timeout=20";

//?ヨ?㈠??绗?覆

string mySQLstr="SELECT * FROM fy";

//杩??ユ?版??搴???浣?

SqlConnection myConnection = new SqlConnection(myConn);

//?ц?SQL璇??ユ??浣?

SqlDataAdapter myDataAdapter = new SqlDataAdapter(mySQLstr,myConnection);

//??寮??版??搴?

myConnection.Open();

//??DataSet濉????版??锛?濉????版??搴????″?ㄤ腑test搴?涓???fy琛?

myDataAdapter.Fill(myDS,"fy");

//??DastaGrid濉????版??

DataGrid1.DataSource=myDS;

DataGrid1.DataBind();

}

/// <summary>

/// 杈??哄??xcel

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void Button1_Click(object sender, System.EventArgs e)

{

if(TextBox1.Text=="")

{

Response.Write("<SCRIPT language=javascript>");

Response.Write("window.alert(''璇疯??ユ??浠跺??'');");

Response.Write("</SCRIPT>");

}

else

{

Response.Clear();

Response.Buffer= true;

Response.Charset="GB2312"; //璁剧疆浜?绫诲??涓轰腑???叉??贡?????虹??

Response.AppendHeader("Content-Disposition","attachment;filename="+TextBox1.Text+".xls"); //瀹?涔?杈??烘??浠跺????浠跺??

Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//璁剧疆杈??烘?涓虹??浣?涓???

Response.ContentType = "application/ms-excel";//璁剧疆杈??烘??浠剁被??涓?xcel??浠躲??

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());

}

}

#region Web 绐?浣?璁捐?″?ㄧ??????浠g??

override protected void OnInit(EventArgs e)

{

//

// CODEGEN: 璇ヨ??ㄦ?? ASP.NET Web 绐?浣?璁捐?″?ㄦ??蹇???????

//

InitializeComponent();

base.OnInit(e);

}

/// <summary>

/// 璁捐?″?ㄦ???????????规? - 涓?瑕?浣跨?ㄤ唬??缂?杈??ㄤ慨??

/// 姝ゆ?规?????瀹广??

/// </summary>

private void InitializeComponent()

{

this.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);

this.Button1.Click += new System.EventHandler(this.Button1_Click);

this.Load += new System.EventHandler(this.Page_Load);

}

#endregion

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.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");

}

}

}

}

??