ASP.NET下导出Excel 以及在Ajax下面的实现
来源:互联网 发布:舞台制作软件 编辑:程序博客网 时间:2024/06/04 18:06
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 AJAX UpdatePanel下导出Excel报错解决方案
- 在asp.net中实现dataset与excel的相互导入导出
- sql server 与 excel 互导以及在asp.net中从DataTable导出到excel
- sql server 与 excel 互导以及在asp.net中从DataTable导出到excel
- sql server 与 excel 互导以及在asp.net中从DataTable导出到excel
- sql server 与 excel 互导以及在asp.net中从DataTable导出到excel
- Asp.Net下导出/导入规则的Excel(.xls)文件
- 在ASP.NET中GridView导出Excel的快速方法
- ASP.NET 中 DataGrid 导出到 Excel 的封装实现
- ASP.NET 实现Excel文件的导入与导出
- asp.net生成Excel并导出下载的实现方法
- 在ASP.NET中导出excel表
- asp.net 在客户端导出excel文档
- C# asp.net 实现导出Excel
- CI中在Linux服务器下面实现文件导出Excel的方法解决方案
- 在ASP.net下实现像QQ或迅雷一样的从下面浮上个提醒消息框
- Linux下C语言实现UDP Socket编程
- C俄罗斯方块源代码
- 请问我这段多线程代码为什么会死机?
- Android之用PopupWindow实现弹出菜单
- GDI编程需要注意的地方(句柄泄漏)
- ASP.NET下导出Excel 以及在Ajax下面的实现
- 程序各种资源泄露的调试方法
- 自己动手写操作系统
- Superprime Rib
- 网站运营决胜秘籍的三个要点
- 深入浅出 CPropertySheet
- 韩顺平_php从入门到精通_视频教程_学习笔记_源代码图解_PPT文档整理_目录
- 跟着官网学Struts2使用(二)
- 三基站定位演示网址