将Excel中的数据导入数据中

将Excel中的数据导入数据中
2007/05/11 17:28

Excel文件的读取   
     public      DataSet      ExcelToDS(string      Path)   
     {   
       string      strConn      =      "Provider=Microsoft.Jet.OLEDB.4.0;"      +"Data      Source="+      Path      +";"+"Extended      Properties=Excel      8.0;";   
       OleDbConnection      conn      =      new      OleDbConnection(strConn);   
       conn.Open();       
       string      strExcel      =      "";         
       OleDbDataAdapter      myCommand      =      null;   
       DataSet      ds      =      null;   
       strExcel="select      *      from      [sheet1$]";   
       myCommand      =      new      OleDbDataAdapter(strExcel,      strConn);   
       ds      =      new      DataSet();   
       myCommand.Fill(ds,"table1");         
       return      ds;   
     }   
     对于EXCEL中的表即sheet([sheet1$])如果不是固定的可以使用下面的方法得到   
       string      strConn      =      "Provider=Microsoft.Jet.OLEDB.4.0;"      +"Data      Source="+      Path      +";"+"Extended      Properties=Excel      8.0;";   
       OleDbConnection      conn      =      new      OleDbConnection(strConn);   
       DataTable      schemaTable      =      objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables,null);   
       string      tableName=schemaTable.Rows[0][2].ToString().Trim();       
     Excel文件的写入   
     public      void      DSToExcel(string      Path,DataSet      oldds)   
     {   
       //先得到汇总EXCEL的DataSet      主要目的是获得EXCEL在DataSet中的结构   
       string      strCon      =      "      Provider      =      Microsoft.Jet.OLEDB.4.0      ;      Data      Source      ="+path1+";Extended      Properties=Excel      8.0"      ;   
       OleDbConnection      myConn      =      new      OleDbConnection(strCon)      ;   
       string      strCom="select      *      from      [Sheet1$]";   
       myConn.Open      (      )      ;   
       OleDbDataAdapter      myCommand      =      new      OleDbDataAdapter      (      strCom,      myConn      )      ;   
       ystem.Data.OleDb.OleDbCommandBuilder      builder=new      OleDbCommandBuilder(myCommand);   
       //QuotePrefix和QuoteSuffix主要是对builder生成InsertComment命令时使用。   
       builder.QuotePrefix="[";              //获取insert语句中保留字符(起始位置)   
       builder.QuoteSuffix="]";      //获取insert语句中保留字符(结束位置)   
       DataSet      newds=new      DataSet();   
       myCommand.Fill(newds      ,"Table1")      ;   
       for(int      i=0;i<oldds.Tables[0].Rows.Count;i++)   
       {   
         //在这里不能使用ImportRow方法将一行导入到news中,因为ImportRow将保留原来DataRow的所有设置(DataRowState状态不变)。在使用ImportRow后newds内有值,但不能更新到Excel中因为所有导入行的DataRowState!=Added   
         DataRow      nrow=aDataSet.Tables["Table1"].NewRow();   
         for(int      j=0;j<newds.Tables[0].Columns.Count;j++)   
         {   
           nrow[j]=oldds.Tables[0].Rows[i][j];   
         }   
         newds.Tables["Table1"].Rows.Add(nrow);   
       }   
       myCommand.Update(newds,"Table1");   
       myConn.Close();   
     }   
参考文献

http://topic.csdn.net/t/20050530/16/4046414.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值