你可以采用OWC来实现,具体代码参考如下:
using System;using System.Data;using System.Data.SqlClient;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using OWC;namespace cominterop{  public class WebForm1 : System.Web.UI.Page  {    protected System.Web.UI.WebControls.DataGrid DataGrid1;    private SqlCommand sql;    protected System.Web.UI.WebControls.Button export2excel;    protected System.Web.UI.WebControls.TextBox xlfile;    private SqlConnection cnn;    private void Page_Load(object sender, System.EventArgs e)    {      this.BindDataGrid();          }    private void BindDataGrid() {      cnn = new SqlConnection("Initial Catalog=Northwind;Data Source=localhost;uid=sa;pwd=");      sql = new SqlCommand("select * from products",cnn);      cnn.Open();      SqlDataReader reader = sql.ExecuteReader();            this.DataGrid1.DataSource = reader;      this.DataGrid1.DataBind();      reader.Close();      cnn.Close();    }    private void WriteDataGrid2Excel() {            SpreadsheetClass xlsheet = new SpreadsheetClass();      cnn.Open();      SqlDataReader reader = this.sql.ExecuteReader();      int numbercols = reader.FieldCount;              int row=1;            while (reader.Read()) {        for (int i=0;i<numbercols;i++)         {                    xlsheet.ActiveSheet.Cells[row,i+1] = reader.GetValue(i).ToString();        }        row++;      }            reader.Close();      cnn.Close();      xlsheet.ActiveSheet.Export(Server.MapPath(".")+"\\"+this.xlfile.Text,OWC.SheetExportActionEnum.ssExportActionNone);    }    private void export2excel_Click(object sender, System.EventArgs e)    {      if (this.xlfile.Text.Trim()!="")       {        this.WriteDataGrid2Excel();      }    }    #region Web Form Designer generated code    override protected void OnInit(EventArgs e)    {      InitializeComponent();      base.OnInit(e);    }        private void InitializeComponent()    {       this.export2excel.Click += new System.EventHandler(this.export2excel_Click);      this.Load += new System.EventHandler(this.Page_Load);    }    #endregion  }}