參考一下:http://msdn.microsoft.com/library/en-us/cpguide/html/cpcondevelopingwebformscontrols.asp?frame=true這裡有所有有關開發服務器控件的知識!

解决方案 »

  1.   

    简单的例子using  System;
    using  System.Data;
    using  System.Data.SqlClient;
    using  System.Web;
    using  System.Web.UI;
    using  System.Web.UI.WebControls;
    using  System.ComponentModel;
    using System.Collections;
    using EII.Lib.DataIO;
    using EII.Lib.DbBase;
    using OWC;namespace EII.Lib.WebControls
    {
    /// <summary>
    /// 数据导出到Excel的控件
    /// </summary>
    [Designer("EII.Lib.WebControls.Design.ExcelDesigner"), DefaultProperty("Text"), ToolboxData("<{0}:ExportExcelShow runat=server></{0}:ExportExcelShow>"), System.ComponentModel.ToolboxItem(true)] //可选:细节查帮助
    public class ExportExcelShow : System.Web.UI.UserControl
    {
    protected static byte temp = 0; protected  string text = "请点击打开,或右键选择另存为..."; /// <summary>
    /// 要显示的提示
    /// </summary>
    [Bindable(true),
    Category("Appearance"),
    DefaultValue("")]
    public string Text
    {
    get
    {
    return text;
    } set
    {
    text = value;
    }
    } public ExportExcelShow()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    } /// <summary>
    /// 显示控件
    /// </summary>
    public void Show()
    {
    string tempfile = System.IO.Path.Combine(Server.MapPath("/ImageTemp"),(++temp).ToString("X2") + ".jpg");
    }
    /// <summary>
    /// 通过DataSet数据源将数据导出到Excel
    /// </summary>
    /// <param name="ds">要填充的DataSet数据源</param>
    public void WriteDataBase2Excel(DataSet ds)
    {
    SpreadsheetClass sheet = ExportExcel.WriteDataBase2Excel(ds);
    WriteFile(sheet);
    }
    /// <summary>
    /// 通过EIIRead数据源将数据导出到Excel
    /// </summary>
    /// <param name="read">要填充的EIIRead数据源</param>
    public void WriteDataBase2Excel(EIIRead  read)
    {
    SpreadsheetClass sheet = ExportExcel.WriteDataBase2Excel(read);
    WriteFile(sheet);
    } /// <summary>
    /// 通过查询语句将数据导出到Excel
    /// </summary>
    /// <param name="sql">一条查询语句</param>
    public void WriteDataBase2Excel(string sql)
    {
    SpreadsheetClass sheet = ExportExcel.WriteDataBase2Excel(sql);
    WriteFile(sheet);
    } /// <summary>
    /// 将界面的DataGrid数据导出到Excel
    /// </summary>
    /// <param name="dgSou"></param>
    public void WriteDataGrid2Excel(DataGrid dgSou)
    {
    SpreadsheetClass sheet = ExportExcel.WriteDataGrid2Excel(dgSou);
    WriteFile(sheet);

    } /// <summary>
    /// 将Excel sheet 写入文件
    /// </summary>
    /// <param name="xlsheet"></param>
    private void WriteFile(SpreadsheetClass xlsheet)
    {
    try
    {
    string tempfile = System.IO.Path.Combine(Server.MapPath("/ImageTemp"),(++temp).ToString("X2") + ".xls"); xlsheet.ActiveSheet.Export(tempfile,OWC.SheetExportActionEnum.ssExportActionNone);

    }
    catch(System.Runtime.InteropServices.COMException ex)
    {
    Console.Write(ex.Message );
    }

    }
    protected override void CreateChildControls()
    {
    string tempfile = @"/ImageTemp/" + temp.ToString("X2") + ".xls";
    //页导航
    this.Controls.Add(new LiteralControl(@"<a  href='"+tempfile+"' Target='_blank' >"+text+"</a>")); base.CreateChildControls ();
    } }
    }