IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

csharp : ouvrir et lire un fichier excel


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 111
    Points : 63
    Points
    63
    Par défaut csharp : ouvrir et lire un fichier excel
    Bonjour,

    je souhaiterais ouvrir un fichier excel dans csharp afin de lire les données et les transférer dan s une base de données SQL server.

    J'ai remarqué qu'il y a deux librairies : interop.excel (COM) et excel (dotnet). Sachant que tous les traitements se font en backend, il faudrait à mon avis utiliser la librairie de dotnet et non du com.

    Qu'en pensez-vous ? Egelement, existe t il un tuto sur ce sujet sur le site. Merci.

  2. #2
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Points : 13 314
    Points
    13 314
    Par défaut
    Pourquoi n'attaque tu pas ta feuille Excel via OleDb plutot que t'emm..der avec l'Interop, en utilisant une chaine de connexion du type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    private const string _excelConnectionStringTemplateForOffice2007 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0;HDR={1};IMEX=0\"";
    A fortiori si tu veux ensuite injecter dans une base de donnée.

    (ceci dit pour faire cela, tu peux aussi utiliser SSIS).

    Je ne réponds pas aux questions techniques par MP ! Le forum est là pour ça...


    Une réponse vous a aidé ? utiliser le bouton

    "L’ennui dans ce monde, c’est que les idiots sont sûrs d’eux et les gens sensés pleins de doutes". B. Russel

  3. #3
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Septembre 2008
    Messages : 168
    Points : 184
    Points
    184
    Par défaut
    Et si l'on veut par exemple exploiter le contenu avant de le mettre en la Base de données?

  4. #4
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Cela reste la même chose, tu peux utiliser de l'interop, du code managé ou une connection oledb.
    Les 3 te permettront de récupérer les données et de les exploiter avant de les mettre en base de données.
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  5. #5
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Septembre 2008
    Messages : 168
    Points : 184
    Points
    184
    Par défaut un exemple?
    Avez un exemple? parce que ca me parait un peu flou! J'ai envie d'attaquer les application office mais ca me bloque parce que ne sachant pas par où commencer...

  6. #6
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Comment donner un exemple sans savoir exactement ce que tu veux faire ?

    Que veux tu dire par attaquer les applications office ?

    Veux tu seulement interpréter certains formats ? (doc ou docx, xls ou xlsx...)
    Blog - Articles - Framework

    MSDN vous aide, si si, alors n'hésitez pas à y faire un tour avant de poser une question.
    Ah, et n'oubliez pas, Google peut répondre à la majorité de vos questions.

  7. #7
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Voici un code d'exemple pour interroger un fichier Excel avec ADO.NET (oledb) :
    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    string filePath = @"C:\Classeur1.xls";
    string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0\";";
    OleDbConnection connection = new OleDbConnection(connectionString);
    string cmdText = "SELECT * FROM [Feuil1$]";
    OleDbCommand command = new OleDbCommand(cmdText, connection);
     
    command.Connection.Open();
    OleDbDataReader reader = command.ExecuteReader();
     
    if (reader.HasRows)
    {
        while (reader.Read())
        {
            Console.WriteLine("{0}\t{1}", reader[0].ToString(), reader[1].ToString());
        }
    }
     
    reader.Close();
    command.Connection.Close();
    Inclure l’espace de nom : System.Data.OleDb.

  8. #8
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Septembre 2008
    Messages : 168
    Points : 184
    Points
    184
    Par défaut
    Excusez moi de n'être pas precis. à vrai dire:
    1. , j'ai besoin d'ouvrir un fichier excell et modifier des données des cellules, et si posssible, utiliser des fonctions MOYENNE, SOMME ect...

    2. J'ai conçu un mini dictionnaire en c#( dictionnaire d'une langue locale) et ainsi qu'un traducteur... mais je voudrais que lorsqu'un texte est soumis à une traduction, que je vérifie d'abord l'orthographe avec MS WORD (par exemple:en ouvrant ce fichier et recevant dans un tableau, la liste des mots incorrects)
    3. Je vous dits merci de votre aide

  9. #9
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Points : 2 927
    Points
    2 927
    Par défaut
    Dans ce cas, tu dois passer par l'interop.

    L'article de J-M Rabilloud pourra t'aider : DOTNET : piloter OFFICE (notamment pour la correction orthographique)
    Mon article pourra te donner les billes pour faire à peu près ce que tu veux avec Excel : Comment piloter Excel avec DotNET

    Pour les bibliothèques, si tu as Microsoft.Office.Interop.Excel et Microsoft.Office.Interop.Word dans les références .Net, c'est mieux, utilise celles-là.

  10. #10
    Membre habitué
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Kinshasa

    Informations forums :
    Inscription : Septembre 2008
    Messages : 168
    Points : 184
    Points
    184
    Par défaut remerciements
    Grand merci! voilà que vous venez de me débloquer... J'ai trouvé ce que je cherchais!
    Merci beaucoup Skalp
    je vais bientôt "attaquer" l'OFFICE de MS
    Merci beaucoup...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir et lire un fichier excel avec un script powershell
    Par Shikamaru86 dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 19/03/2013, 13h28
  2. [Excel] Comment lire des fichiers excel avec php?
    Par dear_rihab dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 02/11/2007, 12h38
  3. [C#] Comment lire un fichier Excel ?
    Par lemmings dans le forum ASP.NET
    Réponses: 12
    Dernier message: 23/12/2005, 11h01
  4. Ouvrire ou Enregistrer un Fichier Excel
    Par jo281 dans le forum ASP
    Réponses: 1
    Dernier message: 13/12/2005, 18h55
  5. lire un fichier excel xls et l'exporter dans une db Mysql
    Par etarip dans le forum Administration
    Réponses: 4
    Dernier message: 10/10/2005, 16h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo