ASP.NET下导出Excel 以及在Ajax下面的实现
2013-01-27 19:39
106 查看
using System; using System.Data; using System.Configuration; 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; using System.Data.SqlClient; using System.IO; using System.Threading; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnOK_Click(object sender, EventArgs e) { Thread.Sleep(5000); bind(); } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; bind(); } protected void bind() { SqlConnection con = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=;"); con.Open(); SqlDataAdapter sda = new SqlDataAdapter("select CustomerID,ContactName,ContactTitle,City from Customers", con); DataSet ds = new DataSet(); sda.Fill(ds); this.GridView1.DataSource = ds.Tables[0]; this.GridView1.DataBind(); } protected void btnExcel_Click(object sender, EventArgs e) { Thread.Sleep(2000); SqlConnection con = new SqlConnection("server=.;database=Northwind;uid=sa;pwd=;"); con.Open(); SqlDataAdapter sda = new SqlDataAdapter("select CustomerID,ContactName,ContactTitle,City from Customers", con); DataSet ds = new DataSet(); sda.Fill(ds); DataTable dt = ds.Tables[0]; StringWriter sw = new StringWriter(); string sWriteLine = ""; string sExcelFileName = "Excel.xls"; int i = 0; //写标题 for (i = 0; i < dt.Columns.Count - 1; i++) { sWriteLine += dt.Columns[i].ColumnName.ToString().Trim() + "\t"; } sWriteLine += dt.Columns[dt.Columns.Count - 1].ColumnName.ToString().Trim(); sw.WriteLine(sWriteLine); //写内容 foreach (DataRow dr in dt.Rows) { sWriteLine = ""; for (i = 0; i < dt.Columns.Count - 1; i++) { sWriteLine += dr[i].ToString().Trim() + "\t"; } sWriteLine += dr[dt.Columns.Count - 1].ToString().Trim(); sw.WriteLine(sWriteLine); } sw.Close(); ds.Dispose(); con.Close(); Page.Response.Clear(); // 防止中文内容为乱码 Page.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); //可令中文文件名不为乱码 Page.Response.AppendHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(sExcelFileName)); System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true); Page.Response.ContentType = "application/ms-excel"; HttpContext.Current.Response.Charset = "gb2312";//编码,根据需要修改 Page.Response.Write(sw); Page.Response.End(); } }
前台页面<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
Namespace="System.Web.UI" TagPrefix="asp" %>
<!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">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<div>
<asp:Button ID="btnOK" runat="server" OnClick="btnOK_Click" Text="获取" />
<asp:Button ID="btnExcel" runat="server" OnClick="btnExcel_Click" Text="Excel" /><br />
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True"
CellPadding="4" ForeColor="#333333" GridLines="None" Height="282px" OnPageIndexChanging="GridView1_PageIndexChanging"
Width="250px">
<FooterStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<RowStyle BackColor="#EFF3FB" />
<PagerStyle BackColor="#2461BF" ForeColor="White" HorizontalAlign="Center" />
<SelectedRowStyle BackColor="#D1DDF1" Font-Bold="True" ForeColor="#333333" />
<HeaderStyle BackColor="#507CD1" Font-Bold="True" ForeColor="White" />
<EditRowStyle BackColor="#2461BF" />
<AlternatingRowStyle BackColor="White" />
</asp:GridView>
</div>
</ContentTemplate>
<Triggers>
<asp:PostBackTrigger ControlID="btnExcel" />
</Triggers>
</asp:UpdatePanel>
<asp:UpdateProgress ID="UpdateProgress1" runat="server">
<ProgressTemplate>
程序加载中Loading
</ProgressTemplate>
</asp:UpdateProgress>
<br />
</form>
</body>
</html>
实际上Ajax下面实现导出Excel 就是添加Triggers
<Triggers>
<asp:PostBackTrigger ControlID="btnExcel" />
</Triggers>
相关文章推荐
- ASP.NET下导出Excel 以及在Ajax下面的实现
- ASP.NET下导出Excel 以及在Ajax下面的实现
- 在asp.net mvc模式下怎么实现导出Excel文件
- asp.net 使用NPOI实现导出Excel功能
- asp.net实现Gradview绑定数据库数据并导出Excel的方法
- asp.net mvc导出excel文件先保存到服务器某个目录,然后再导出到客户端供客户下载功能的实现
- asp.net导出excel方法以及解决科学计数法
- ASP.NET导出Excel时,可选择导出列怎么实现?
- asp.net Grid 导出Excel实现程序代码
- ASP.NET导出数据到Excel的实现方法
- ASP.NET AJAX Advance Tips & Tricks (10) 解决使用AJAX Extender时的页面导出(Word/Excel)问题(Extender control 'XXX'
- asp.net实现导出DataTable数据到Word或者Excel的方法
- sql server 与 excel 互导以及在asp.net中从DataTable导出到excel
- asp.net实现Gradview绑定数据库数据并导出Excel的方法
- asp.net导出Excel 按照预定格式,以及解决导出乱码
- asp.net中实现,用户根据自己的需要,勾选checkbox,然后把查询到数据库中的内容导出到excel
- asp.net导出excel-一行代码实现excel、xml、pdf、word、html、csv等7种格式文件导出功能而且美观-SNF快速开发平台
- asp.net简单实现导出excel报表
- ASP.NET,Web界面利用Button来实现将telerik:RadGrid表格内数据导出Excel
- asp.net生成Excel并导出下载的实现方法