none
c# oledb et excel RRS feed

  • Question

  • Bonjour,
    j'ai un petit probleme avec oledb et excel.En effet je reussi a ecrire dans ma feuille excel cependant quoique je fais j'arrive que a insérer sur la premiere.comment faire pour acceder au autres lignes svp?
    Code :
    string connectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + AppDomain.CurrentDomain.BaseDirectory + "\controle\excel\" + recuperation_fichier.FileName + ";Extended Properties='Excel 12.0 Xml;HDR=NO;FirstRowHasNames=NO;'";
    OleDbConnection connExcel = new OleDbConnection(connectionString);
    connExcel.Open();
    OleDbCommand cmdExcel = new OleDbCommand("UPDATE [feuil1$F3:G3] SET F1='milouse',F2='momo'",connExcel);
    cmdExcel.ExecuteNonQuery();

    vendredi 14 août 2009 20:51

Réponses

  • Bonjour,

    J'ai pas bien compris ta problématique, puisque tu es entrain t'exécuter une requête UPDATE, et non pas INSERT.
    Pour "accéder" aux lignes, tu peux utiliser un DataReader, néanmoins je t'apporte une modification concernant la chaine de connexion :

    String connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MonFichier.xls ;Extended Properties=Excel 8.0; HDR=YES; IMEX=1";

    Question de compatibilité pour ne pas avoir des surprises lors du déploiement, il faut utiliser le provider Jet Oledb 4.0, et aussi la version d'excel (ici 8.0).
    Pour IMEX=1, c'est très utile surtout lorsque tu as des valeurs numériques dans le fichier, parce que c'est pas toi qui décide le type de colonne.....

    Merci.
    • Proposé comme réponse Dev-FX samedi 15 août 2009 10:56
    • Marqué comme réponse Marius Bugiulescu jeudi 20 août 2009 10:59
    samedi 15 août 2009 10:56