使用Oledb将数据写入Excel

是否可以使用Oledb将数据写入一个通用的excel?

没有表结构或任何东西,这是一个用户文档。

当我尝试时,我总是一个OleDbException

  • “INSERT”查询回复:操作必须使用可更新的应用程序。
  • “UPDATE”查询答复:没有给出一个或多个必需参数的值。

我的代码:

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(); } 

新的testing(没有成功!):

  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(); } 

我终于find了! 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\"