2013-10-29 214 views
3

是否可以使用Oledb將數據寫入常用的Excel中?使用Oledb將數據寫入到Excel

沒有表結構或任何東西,它是一個用戶文檔。

當我想,我一直一個OleDbException

  • 「INSERT」查詢回覆: 操作必須使用可更新的應用程序。
  • 「更新」查詢回覆: 未給出一個或多個必需參數的值。

我的代碼:

using (OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @"C:\Users\[...]\Classeur.xls" + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;READONLY=FALSE\"")) 
     { 
      connection.Open(); 
      OleDbCommand commande = new OleDbCommand(
       "INSERT INTO [Feuil1$](F1,F2,F3) VALUES ('A3','B3','C3');", connection); 
      commande.ExecuteNonQuery(); 

      connection.Close(); 
      connection.Dispose(); 
     } 

新的測試(不sucess!):

 using (OleDbConnection connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + @"C:\Users\[...]\Classeur.xls" + ";Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;READONLY=FALSE\"")) 
     { 
      string column = "A"; 
      string row = "1"; 
      string worksheetName = "Feuil1"; 
      string data = "TEST"; 
      connection.Open(); 
      string commandString = String.Format("UPDATE [{0}${1}{2}:{1}{2}] SET F1='{3}'", worksheetName, column, row, data); 
      OleDbCommand commande = new OleDbCommand(
       commandString, connection); 
      connection.Close(); 
      connection.Dispose(); 
     } 
+0

看看[這裏](http://www.codeproject.com/Articles/ 8500/Reading-and-Writing-Excel-using-OLEDB)文章 – Izikon

+0

我已經下載了這個項目(具有不爲我工作的功能的細胞版),並且在他的代碼中他使用了像我這樣的Update。在FrameWork 3.5上,也許這是一個原因? –

+0

我不認爲原因是FW版本。提供者不同於代碼中的代碼 – Izikon

回答

5

我終於找到了! IMEX的 簡單的問題(失去了這麼多的時間!)

因此,如果任何人有同樣的問題:

//for reading data 
Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;READONLY=FALSE\" 

//for writing data 
Extended Properties=\"Excel 8.0;HDR=NO;IMEX=3;READONLY=FALSE\"