Écrire des Données dans Excel à l'aide de Oledb

Est-il possible d'écrire des données à l'aide de ole db dans une commune excel ?

Il n'y a pas de structure de table ou quoi que ce soit, c'est un document utilisateur.

Quand j'ai essayé, j'ai toujours eu un OleDbException

  • "INSÉRER" requête-réponse :
    L'opération doit utiliser une application qui peut être mis à jour.
  • "Mise à JOUR" requête-réponse :
    Aucune valeur donnée pour un ou plusieurs paramètres obligatoires.

Mon code:

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

Nouveau test (sans succès !) :

       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}{2}:{1}{2}] SET F1='{3}'", worksheetName, column, row, data);
            OleDbCommand commande = new OleDbCommand(
                commandString, connection);
            connection.Close();
            connection.Dispose();
        }
Regardez ceci l'article
J'ai téléchargé ce projet ( avec des fonctionnalités qui ne fonctionnent pas pour moi précisément les cellules de l'édition), et dans son code, il utiliser une mise à Jour comme moi .. je suis sur le FrameWork 3.5, c'est peut-être une raison ?
Je ne pense pas que la raison est la version FW. le fournisseur est différent du code dans l'article à votre code
Il l'utiliser : "OLEDB Jet 4.0" (pour Excel 8) Et "Ace OLEDB 12.0" (pour Excel 12) j'ai essayer de changer de fournisseur, la version d'excel version du fichier (test de croix) et à chaque fois la même erreur ! Et , dans ma requête, F1 est la Colonne, mais, je n'ai jamais spécifier la ligne. Ce qui pourrait expliquer l'erreur, mais je ne vois pas d'exemple où il de préciser .
vous faire la même erreur à l'aide de la classe que vous avez téléchargé?

OriginalL'auteur CheapD AKA Ju | 2013-10-29