我想实现形式:
第一行 统计信息
第二行开始是详细数据比如A班就1名同学  B班有2名同学  合计有3名同学ID  姓名  班级
1   小明  B 
2   小华  A
3   小美  B

解决方案 »

  1.   

    比如  select * from students导出的excel结果如下A班就1名同学 B班有2名同学 合计有3名同学ID 姓名 班级
    1 小明 B  
    2 小华 A
    3 小美 B
    如果是select * from students where class='B'导出的excel结果如下:B班有2名同学ID 姓名 班级
    1 小明 B  
    3 小美 B
      

  2.   

    页面没有GridView控件  只有选择查询条件和一个导出按钮
      

  3.   

    导出按钮: 
      protected void Button2_Click(object sender, EventArgs e)
        {
            Response.Redirect("Export.aspx?search=" + txtSearch.Text);
        }Export.aspx
    获取一个DataTable,
    在前台的DIV里直循环DataTable:
    <div runat="server" id="excelDiv">
      <table>
    </div>
    后台:
            if (!IsPostBack)
            {
                    Export("报表");
            }    private void Export(string fileName)
        {
            Response.Clear();
            Response.AddHeader("content-disposition", "attachment;filename=" + fileName + ".xls");
            Response.Charset = "GB2312";
            Response.ContentType = "application/vnd.xls";
            Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
            System.IO.StringWriter stringWrite = new System.IO.StringWriter();
            System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);
            excelDiv.RenderControl(htmlWrite);
            Response.Write(stringWrite.ToString());
            Response.End();
        }
      

  4.   


    /// <summary>
    /// 打开指定的 Excel 文件,并返回 工作博;
    /// </summary>
    /// <param name="filepath"></param>
    /// <returns></returns>
    public static Excel.Workbook openExcelFile(string filepath)

    Excel.Application excel = new Excel.ApplicationClass();
    excel.Visible = false;
    excel.DisplayAlerts = false; 
    Excel.Workbooks workbooks = excel.Workbooks;  
    Excel.Workbook workbook=workbooks.Open(filepath,Missing.Value,true,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value,Missing.Value);
    return workbook;
    } /// <summary>
    /// COPY 部分表格数据到 Sheet 中; 6个参数分别表示 目的Sheet, 数据, 开始copy的数据行(0开始), 开始copy的数据列(0开始),
    ///                                            copy的数据行数目,copy的数据列数目,sheet的数据行位置(1开始),sheet的数据列位置(1开始),
    /// 
    /// </summary>
    public static void copyrowdata(Excel.Worksheet sheet, System.Data.DataTable dt, int beginrow, int begincol,                      
    int copyrowcount, int copycolcount,  int beginsheetrow, int beginsheetcol, ICopySheetDataHandle aHandle) 
    {
    int asheetcol = beginsheetcol;
    for (int row=beginrow;row<beginrow+copyrowcount;row++) 
    {
    for (int col = begincol; col<begincol+copycolcount;col++) 
    {
    sheet.Cells[beginsheetrow, asheetcol] = dt.Rows[row][col].ToString();
    if (aHandle!=null) aHandle.handleSheet( dt, row, col, sheet, beginsheetrow, asheetcol);
    asheetcol ++;
    }
    beginsheetrow++;
    asheetcol = beginsheetcol;
    }
    }
    /// <summary>
    /// 输出到EXCEL
    /// </summary>
    private static void OpToExcel(string filepath,string oppath,System.Data.DataSet ads)
    {

    Excel.Workbook wb =  openExcelFile(filepath);
    DataSet ds = ads;

    for(int j=0;j<8;j++)
    {
    xlsdt     =  ds.Tables[0];
    Excel.Worksheet st =wb.Sheets[j+1] as Excel.Worksheet;// (Excel.Worksheet)wb.Sheets.Add(System.Reflection.Missing.Value,System.Reflection.Missing.Value,System.Reflection.Missing.Value,System.Reflection.Missing.Value);
    copyrowdata(st,xlsdt,0,0,xlsdt.Rows.Count,xlsdt.Columns.Count,2,1);

    }

    try 
    {  
    foreach (Process a in (Process.GetProcessesByName(program))) 
    {
    try { a.Kill(); }
    catch(Exception ee) { }
    }
    }
    catch(Exception xx) { }
    }
      

  5.   

    public void Excel()
    {
    int Id=0;
    string Name="测试";
    string FileName="F:\\Temp.xls";
    System.Data.DataTable dt=你的记录集;
    OleDbParameter[] parm=new OleDbParameter[dt.Columns.Count];
    string connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + FileName +";Extended Properties=Excel 8.0;";
    OleDbConnection objConn = new OleDbConnection(connString);
    OleDbCommand objCmd = new OleDbCommand();
    objCmd.Connection = objConn;
    objConn.Open();
    //建立表结构
    objCmd.CommandText = @"CREATE TABLE Sheet1(ID,integer,姓名 varchar,班级 varchar)";
    objCmd.ExecuteNonQuery();
    //建立插入动作的Command
    objCmd.CommandText = "INSERT INTO Sheet1("+Id+","+Name+","+Grade+")";
    parm[0]=new OleDbParameter("@Id", OleDbType.Integer);
    objCmd.Parameters.Add(parm[0]);
    parm[1]=new OleDbParameter("@Name", OleDbType.VarChar);
    objCmd.Parameters.Add(parm[1]);
    parm[2]=new OleDbParameter("@Grade", OleDbType.VarChar);
    objCmd.Parameters.Add(parm[2]); //遍历DataTable将数据插入新建的Excel文件中
    for(int i=0;i<dt.Rows.Count;i++)
    {   
    parm[0].Value=i+1;
    for(int j=1;j<parm.Length;j++)
    {
    parm[j].Value =dt.Rows[i][j];
    }
    objCmd.ExecuteNonQuery();
    }
    objConn.Close();
    }
      

  6.   

    @"CREATE TABLE Sheet1(ID,integer,姓名 varchar,班级 varchar)"; 
    写错了
    @"CREATE TABLE Sheet1(ID integer,姓名 varchar,班级 varchar)";