DataGrid 导出 word 和 excel

<%@ Page language="c#" Codebehind="WebForm3.aspx.cs" AutoEventWireup="false" Inherits="Web_zwt.WebForm3" %>


 
  WebForm3
  
  
  
  
 
 
  


   
         runat="server">     Text="导出word">     Text="导出excel">这个在我这里好用.在"引用"填加引用 -> com -> Microsoft Excel 10.0 Object Library.

 

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.IO;
using System.Windows.Forms;


namespace Web_zwt
{
 ///


 /// WebForm3 的摘要说明。
 ///

 public class WebForm3 : System.Web.UI.Page
 {
  protected System.Web.UI.WebControls.DataGrid DataGrid1;
  protected System.Web.UI.WebControls.Button Button1;
  protected System.Web.UI.WebControls.Button Button2;
  protected System.Web.UI.WebControls.Label Label1;
  config con=new config();
  private void Page_Load(object sender, System.EventArgs e)
  {
   // 在此处放置用户代码以初始化页面
   //在"引用"填加引用 -> com -> Microsoft Excel 10.0 Object Library.

   DataSet ds=con.ds("select * from tab1");
   DataGrid1.DataSource=ds;
   DataGrid1.DataBind();
  }

  ///


  /// excel
  ///

  /// DataSet
  /// // typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件
  /// 导出的名字
  public void CreateExcel(DataSet ds,string typeid,string FileName)
  {
   HttpResponse resp;
   resp = Page.Response;
   resp.Clear();
   resp.Buffer= true;
   resp.Charset="GB2312"; //设置了类型为中文防止乱码的出现
   resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
   resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);  
   resp.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
   resp.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword
   
   string colHeaders= "", ls_item="";
//   int i=0;

   //定义表对象与行对像,同时用DataSet对其值进行初始化
   DataTable dt=ds.Tables[0];
   DataRow[] myRow=dt.Select("");
   // typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件
   if(typeid=="1")
   {
    for (int i=0;i    {
     //取得数据表各列标题,各标题之间以/t分割,最后一个列标题后加回车符
     colHeaders+=dt.Columns[i].Caption.ToString()+"/t";
    }
     colHeaders +=dt.Columns[dt.Columns.Count-1].Caption.ToString() +"/n";  
     //向HTTP输出流中写入取得的数据信息
     resp.Write(colHeaders);
     //逐行处理数据 
    foreach(DataRow row in myRow)
    {
     for (int i=0;i     {
      //在当前行中,逐列获得数据,数据之间以/t分割,结束时加回车符/n
      ls_item +=row[i].ToString() + "/t";    
     }
     ls_item += row[dt.Columns.Count-1].ToString() +"/n";
     //当前行数据写入HTTP输出流,并且置空ls_item以便下行数据   
     resp.Write(ls_item);
     ls_item="";
    }
   }
   else
   {
    if(typeid=="2")
    {
     //从DataSet中直接导出XML数据并且写到HTTP输出流中
     resp.Write(ds.GetXml());
    }   
   }
   //写缓冲区中的数据到HTTP头文件中
   resp.End();


  }
  ///


  /// word
  ///

  /// DataSet
  /// // typeid=="1"时导出为word格式文件;typeid=="2"没有
  /// 导出的名字
  public void CreateWord(DataSet ds,string typeid,string FileName)
  {
   HttpResponse resp;
   resp = Page.Response;
   resp.Clear();
   resp.Buffer= true;
   resp.Charset="GB2312"; //设置了类型为中文防止乱码的出现
   resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
   resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);  
   resp.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");//设置输出流为简体中文
   resp.ContentType = "application/ms-excel";

   DataTable dt=ds.Tables[0];
   DataRow[] myRow=dt.Select("");
   string str=string.Empty;
   str+="

";
   if(typeid=="1")
   {
    str+="";
    for (int i=0;i    {
     str+="
";
    }
    str+="";
    foreach(DataRow row in myRow)
    {
     str+="";
     for (int i=0;i     {
      str+="
";
     }
     str+="";
     
    }
    str+="
"+dt.Columns[i].Caption.ToString()+"
"+row[i].ToString()+"
";
    resp.Write(str);
   }
   else
   {
    if(typeid=="2")
    {
    }   
   }
   //写缓冲区中的数据到HTTP头文件中
   resp.End();

 

  }


  #region Web 窗体设计器生成的代码
  override protected void OnInit(EventArgs e)
  {
   //
   // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
   //
   InitializeComponent();
   base.OnInit(e);
  }
  
  ///


  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  ///

  private void InitializeComponent()
  {   
   this.Button1.Click += new System.EventHandler(this.Button1_Click);
   this.Button2.Click += new System.EventHandler(this.Button2_Click);
   this.Load += new System.EventHandler(this.Page_Load);

  }
  #endregion

  private void Button2_Click(object sender, System.EventArgs e)
  {
   DataSet ds=con.ds("select * from tab1");
   CreateExcel(ds,"1","aaa.xls");
  }

  private void Button1_Click(object sender, System.EventArgs e)
  {
   DataSet ds=con.ds("select * from tab1");
   CreateWord(ds,"1","aaa.doc");
  }
 }
}

你可能感兴趣的:(asp.net,技术,datagrid,dataset,microsoft,button,webform,excel)