其实你这个问题和
---------------------------------------------
主  题:  关于将数据保存成excel xls格式的问题 
作  者:  xiaolie ()  
------------------------------------------
几乎是同一个问题。何必用控件。自己直接编程即可。把Excel当做数据库。 向Execl数据库中插入记录即可。  微软提供了EXCEl数据库的借口。我可以向你保证百分之百行。

解决方案 »

  1.   

    你的意思是这样??
    这样不行!!!public bool ImportData(string strFilePath, string dataTypeName)
    {
        if(strFilePath == null)
    return false;    //定义对Excel的OLEDB连接
        string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;"  +"Data Source=" + strFilePath + ";"  +"Extended Properties=Excel 8.0;";    OleDbConnection conn = new OleDbConnection(strConn);

        //察看dataTypeName,得到对应的数据类型的信息
        DataTypeInfo dataTypeInfo = null;
        int dataTypeArryCount = dataTypeInfoArray.Count;
        for(int i = 0;i < dataTypeArryCount;i++)
       {
         //匹配数据类型名称
        DataTypeInfo Info = (DataTypeInfo)dataTypeInfoArray[i];
        if(dataTypeName == Info.dataTypeName)
        {
           dataTypeInfo = Info;
           break;
        }
       }   //如果数据信息没有找到,return
       if(dataTypeInfo == null)
    return false;   //如果sheet信息不存在,return
       int sheetInfoArrayCount = dataTypeInfo.sheetInfoArray.Count;
       if(sheetInfoArrayCount == 0)
           return false;   //分别处理sheet数据,把它们都放到DataClass中,然后进行数据导入
       for(int j = 0;j < sheetInfoArrayCount;j++)
       {
         SheetInfo sheetInfo = (SheetInfo)TypeInfo.sheetInfoArray[j];
         string sheetName = sheetInfo.sheetName;    //从Excel中读取相应的值
        string strCommand = "SELECT * FROM [" + sheetName + "$]";
        OleDbCommand myCommand = new OleDbCommand(strCommand, conn);     //申请一个Data Adapter和数据库相连
        OleDbDataAdapter myDataAdapter = new OleDbDataAdapter();
        myDataAdapter.SelectCommand = myCommand;    //开始访问数据
       conn.Open();
       DataSet dataSet = new DataSet();
       myDataAdapter.Fill(dataSet);
       conn.Close();

    //进行对应数据的导入
    IDataTableImportExport dataTableImportExport = null;
    if(!sheetInfo.dataIsHorizontal)
    {
    //申请团体保单导入对象
    dataTableImportExport = new CompanyAppImportExport(classDataProvider);
    }
    else
    {
    //申请团保的个人清单导入对象
    dataTableImportExport = new AppCoverageImportExport(classDataProvider);
    } //导入数据
    dataTableImportExport.ImportData(dataSet.Tables[0]);
    } return true;
    }
      

  2.   

    其实Execl就想一个Access数据库。
    文件就相当于一个DataBase
    每个sheet就象一个Table
    而excel。在组织Database 和Table有一个我们看不见的结构当你把excel当作数据库。从另个一个数据库中到处数据时,那种看不见的结构就行成了。这时你又把excel当做数据库,把数据导入到另一个数据库时,是可以的。而当你自己随便在Excel中建立自己认为的"表",对不起 不能导入。因为那种看不见的结构不存在。sheet也并不是完全是Table。sheet 的名字根本不是表名。我曾在导入导出耗费了相当长的时间。你的连接串和我希望的差不多。
    我当时用的是这样的 
    string strConn=@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+sSourceFileName+
    @";Extended Properties=""Excel 4.0;HDR=Yes;"";" ;
    所以我认为。把excel当作一个媒介。用来导出导入在不同机器之间交换数据,是可以的。如果想单纯当作数据源,我感到到有点困难。我当时也就是做到这点就为止了。
    可以看看别人是否有什么见解。