使用Oledb将数据写入Excel

Che*_* Ju 3 c# 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();
        }
Run Code Online (Sandbox Code Playgroud)

新测试(没有成功!):

       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();
        }
Run Code Online (Sandbox Code Playgroud)

Che*_* Ju 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\"
Run Code Online (Sandbox Code Playgroud)