2009-09-24 129 views
0

如何将行插入到Excel文档中。这是我的。Excel OleConnection插入语句

String connString = "Provider=Microsoft.Jet.OLEDB.4.0;" + 
    "Data Source=" + file_path + ";Extended Properties=Excel 8.0;"; 

     DataTable dt = new DataTable(); 

     DataSet ds = new DataSet(); 
     OleDbConnection conn = new OleDbConnection(connString); 

     OleDbCommand cmd = new OleDbCommand(str_insert, conn); 

     cmd.CommandTimeout = 3600; 
     try 
     { 

      cmd.Connection = conn; 
      DataSet active_ds = new DataSet(); 
      cmd.CommandText = str_insert; 
      if (conn.State != ConnectionState.Open) 
       conn.Open(); 

      foreach (DataRow dr in details_dt.Rows) 
      { 
       cmd.CommandText = "INSERT INTO [DETAILS$](Ipt, Ipt Ownr, Order, Order Delivery Date, Assembly, Description, Component, User, Name, Change Code, Reason Code, Value New, Value Old," 
       + "Date, Time, Auth Doc, Plant, Mfg Source, Order Type, Model, Effy) " + "VALUES(" + dr.ItemArray[0].ToString() + "," + dr.ItemArray[1].ToString() + "," + dr.ItemArray[2].ToString() + "," + dr.ItemArray[3].ToString() + "," + 
       dr.ItemArray[4].ToString() + "," + dr.ItemArray[5].ToString() + "," + dr.ItemArray[6].ToString() + "," + dr.ItemArray[7].ToString() + "," + dr.ItemArray[8].ToString() + "," + dr.ItemArray[9].ToString() + "," + dr.ItemArray[10].ToString() 
       + "," + dr.ItemArray[11].ToString() + "," + dr.ItemArray[12].ToString() + "," + dr.ItemArray[13].ToString() + "," + dr.ItemArray[14].ToString() + "," + dr.ItemArray[15].ToString() + "," + dr.ItemArray[16].ToString() + "," + dr.ItemArray[17].ToString() 
       + "," + dr.ItemArray[18].ToString() + "," + dr.ItemArray[19].ToString() + "," + dr.ItemArray[20].ToString() + "," + dr.ItemArray[21].ToString() + ")"; 
        cmd.ExecuteNonQuery(); 

      } 
+1

Excel的什么版本?你有错误吗?你打开连接好吗? – Gratzy 2009-09-24 14:15:36

+0

或者你只是重新问这个问题http://stackoverflow.com/questions/1468076/c-accessing-excel-worksheet/1468153#1468153 – Gratzy 2009-09-24 14:17:13

回答

0

这很奇怪,但我能够访问的excel文件有所不同。我能够访问.xls但不能访问.xlsx文件。我生成了一个使用XML的excel文件,无法使用OleDB访问这个文件,所以我简单地改变了文件格式并且工作。

0

此连接字符串将允许您访问Excel 2007的.xlsx文件...

OleDbConnection xlconnection = new OleDbConnection(); 

xlconnection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + FileName + @";Extended Properties='Excel 12.0;HDR=YES;IMEX=1'";