É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é?
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
Vous devez vous connecter pour publier un commentaire.
J'ai enfin trouvé!!!
Simple question de l'IMEX ( de nombreuses heures perdues !)
Donc si quelqu'un a le même problème :
OriginalL'auteur CheapD AKA Ju