不同的dataTable 分别导入到 Excel 的 不同Sheet 中
即 每个datatable 对应一个sheet!
谁能提供点关键代码或样例?

解决方案 »

  1.   

    System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
    conn.Open();
    DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); //获取excel表中的工作簿信息表
    try
    {
    //schemaTable.Rows.Count为excel中工作簿数目
    for(int i=0; i<schemaTable.Rows.Count; i++)
    {
                                       //这里添加你要导入的代码
    }
    }
    catch
    {}
    finally
    {
    conn.Close();
    }
      

  2.   

    System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(strConn);
    conn.Open();
    DataTable schemaTable = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null); //获取excel表中的工作簿信息表
    try
    {
    //schemaTable.Rows.Count为excel中工作簿数目
    for(int i=0; i<schemaTable.Rows.Count; i++)
    {
    DataTable dtTemp = new DataTable();
    strSqlCommand = "SELECT * FROM ["+schemaTable.Rows[i]["TABLE_NAME"].ToString()+"]";
    System.Data.OleDb.OleDbDataAdapter myCommand = new System.Data.OleDb.OleDbDataAdapter(strSqlCommand, conn);
    myCommand.Fill(dtTemp);
    dtTemp.Clear();
    }
    }
    catch
    {}
    finally
    {
    conn.Close();
    }这个之前写的读取EXCEL中多个工作簿记录的代码 应该差不多
      

  3.   

    在网上找个 Aspose.Excel.dll,看看用法,那个操作excel非常方便Worksheets sheets = excel.Worksheets;
    Cells cells = sheets[0].Cells;
    sheets[0].Name="employees";
    int excelrow=0;
    Range w;

    //set title
    byte col = 0;

    cells.Merge(excelrow,col,1,7); cells[excelrow,col++].PutValue("Employee Management");
    excelrow++;
    //set col title
    col=0;
    cells[excelrow,col++].PutValue("EmpCode");
    cells[excelrow,col++].PutValue("LocalName");
    cells[excelrow,col++].PutValue("EngName");
    cells[excelrow,col++].PutValue("DeptName");
    cells[excelrow,col++].PutValue("NtID");
    cells[excelrow,col++].PutValue("Job");
    cells[excelrow,col++].PutValue("Address");

    w=cells.CreateRange(excelrow-1,0,2,7);
    w.Style=excel.Styles["Title"];

    excelrow++; DataTable dt=(DataTable)(Session["EmpList"]);
    if(dt==null) return;

    foreach(DataRow dr in dt.Rows)
    {
    col=0;
    cells[excelrow,col++].PutValue(dr["employeecode"].ToString());
    cells[excelrow,col++].PutValue(dr["employeename"].ToString());
    cells[excelrow,col++].PutValue(dr["eemployeename"].ToString());
    cells[excelrow,col++].PutValue(dr["deptname"].ToString());
    cells[excelrow,col++].PutValue(dr["ntid"].ToString());
    cells[excelrow,col++].PutValue(dr["job"].ToString());
    cells[excelrow,col++].PutValue(dr["address"].ToString());
    excelrow++;
    }
    col=0; w=cells.CreateRange(2,col,excelrow,7);
    w.Style=excel.Styles["Data"];
     
    excel.Save("Employee Management.xls", SaveType.OpenInExcel, FileFormatType.Excel2000, Response);
    我给你付一个比较简单的用法,有问题可以加我 msn : [email protected]