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

C# Discussion :

Lecture d'un fichier Excel depuis C#


Sujet :

C#

  1. #1
    Membre chevronné

    Homme Profil pro
    Appui fonctionnel senior
    Inscrit en
    Juin 2007
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Appui fonctionnel senior
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 461
    Points : 2 213
    Points
    2 213
    Par défaut Lecture d'un fichier Excel depuis C#
    Bonjour à tous !

    Bon, je résume un peu ma situation : je dispose d'un fichier Excel contenant un tableau normalisé. Je souhaite pouvoir, depuis une application écrite en C#, pouvoir accéder en lecture à ce tableau (l'écriture n'a pas d'importance .... enfin .... pour l'instant ).

    Je me suis donc renseigné par-ci par-là sur Internet, et j'ai trouvé des exemples utilisant des connections OleDB.

    Le problème, c'est qu'à mon travail, les machines sont mal équipées : beaucoup de Provider les plus communs sont manquants, et les outils sont plutôt ancien.

    Voici une petite liste des outils dont je dispose :
    - Windows 2000 Pro
    - Excel 2000 9.0.7616 SP3
    - Framework .NET v2.0.50727 (et aucun environnement de dev :'( , juste Bloc-Notes ! )
    - le provider qui me semble serai le plus intéressant : Microsoft Excel Driver (v4.00.6200.00)
    - Enfin ma version de MDAC n'est pas assez récente :/

    Donc voilà, dans l'espoir que quelqu'un puisse m'aider.

  2. #2
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par Lutarez Voir le message
    - Framework .NET v2.0.50727 (et aucun environnement de dev :'( , juste Bloc-Notes ! )
    ....et bah, il est temps de passer a #develop, comme ca, au moins, tu as un environnement de dev decent
    --> http://www.icsharpcode.net/OpenSource/SD/

    Apres, pour les connections OleDb, si je me rappelle bien, le moteur Jet OleDb est installe de base sur windows, et, dans le pire des cas, tu peux fournir un setup a tes utilisateurs

    Eventuellement, si tu veux etre sur de ton coup, tu peux generer un setup qui va prendre comme pre-requis l'installation de Jet (regarde du cote de dreamshield )

  3. #3
    Membre chevronné

    Homme Profil pro
    Appui fonctionnel senior
    Inscrit en
    Juin 2007
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Appui fonctionnel senior
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 461
    Points : 2 213
    Points
    2 213
    Par défaut
    Merci pour cette réponse rapide !

    Cependant, je connais #develop (que j'apprécie d'ailleurs), mais je n'ai pas les droits pour installer des logiciels au boulot, donc c'est loupé (ceci dit, je vais essayer de me faire une version portable )

    Sinon, pour le moteur Jet, il semblerait effectivement que je l'ai, mais la version que possède l'entreprise n'est pas assez récente (j'ai quand même essayer quelques morceaux de code qui traînent sur internet, mais aucuns ne fonctionne, me disant que la version n'est pas assez récente).

    Pour être plus précis, voici l'erreur :

    System.InvalidOperationException: Le fournisseur OleDb de données .Net Framework requiert Microsoft Data Access Components (MDAC) 2.6 ou version ultérieure. La version 2.53.6200.1 est actuellement installée.


    La question est alors de savoir si je peux joindre le moteur à l'application directement, car pour être franc, je ne sais pas vraiment comment sont installés ces moteurs sur l'OS...

  4. #4
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    La question est alors de savoir si je peux joindre le moteur à l'application directement, car pour être franc, je ne sais pas vraiment comment sont installés ces moteurs sur l'OS...
    Joindre le moteur a l'appli, pas vraiment, mais tu peux le livrer en meme temps qu'un setup (tu trouveras les exes sur le site de microsoft)

    mais je n'ai pas les droits pour installer des logiciels au boulot
    Euh...ce serait le moment de raler, non ?
    Si ton chef ne se rends pas compte que ne pas avoir un environnement de dev potable te fait perdre du temps (donc, lui fait perdre de l'argent), faudrait lui faire mettre le doigt dessus

  5. #5
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 502
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 502
    Points : 3 133
    Points
    3 133
    Par défaut
    OLE avec les interop n'est pas possible ??

  6. #6
    Membre chevronné

    Homme Profil pro
    Appui fonctionnel senior
    Inscrit en
    Juin 2007
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Appui fonctionnel senior
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 461
    Points : 2 213
    Points
    2 213
    Par défaut
    ^^ Je suis tout à fait d'accord avec toi, mais après tout je ne suis qu'un pauvre apprenti embauché au Marketing ......

    Je pensais effectivement demander prochainement l'autorisation de m'installer un IDE.

    Je vais regarder si je peux installer de nouvelles versions du moteur dès que possible. Si cela fonctionne, je devrais être en mesure de pouvoir trouver du code sur Internet (car je n'ai pas la moindre idée de comment créer une connection, mais cela ne devrait pas être bien difficile !). Si ça marche pas, je formate mon poste et je réinstalle des versions récentes ! (si seulement je pouvais )

    Si seulement M$ arrêter de créer des format propriétaire, j'aurai pas toute ses complications ...

  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
    Citation Envoyé par Papy214 Voir le message
    OLE avec les interop n'est pas possible ??
    OLE et Interop sont deux connexions (différentes) possibles avec Excel.
    [EDIT]Je viens de réaliser que tu pensais peut-être à OLE Automation qui est possible effectivement avec les Interop Office, mais qui n'est pas une connexion OleDb, comme on en parlé jusqu'ici. Il y a de quoi s'emmeler les pinceaux avec tous ces termes...[/EDIT]

    Interop est une solution, si vraiment OleDb ne passe pas, mais c'est assez complexe à utiliser et à déployer.

    Le pilote OleDb pour se connecter à Excel est très vieux (Microsoft.Jet.OLEDB.4.0), ça m'étonne qu'il ne fonctionne pas avec la version de MDAC que tu as... à moins que le framework .net refuse d'utiliser un provider plus vieux que 2.6...
    Quel est le dernier service pack installé avec Windows 2000 pro sur les postes ?

    Montre-nous le code que tu utilises pour te connecter au fichier Excel, peut-être que nous pourrions modifier le provider à utiliser dans la chaîne de connexion ?

  8. #8
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    OLE avec les interop n'est pas possible ??
    en fait, ce sont deux methodes differentes, avec ole, tu fais une requete sql sur un fichier excel en utilisant, avec interop, tu utilise le modele objet d'office...ca peut etre problematique quand le parc n'est pas homogene

    Je suis tout à fait d'accord avec toi, mais après tout je ne suis qu'un pauvre apprenti embauché au Marketing ......

    Je pensais effectivement demander prochainement l'autorisation de m'installer un IDE.
    Le plus simple; voit avec l'admin de ta boite, il se logge, il t'installe sharpdevelop, montre en main il y'en a pour 10 minutes

    Si seulement M$ arrêter de créer des format propriétaire, j'aurai pas toute ses complications ...
    Attends, te plains pas, c'est pas de l'Edifact

  9. #9
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Points : 8
    Points
    8
    Par défaut gmao
    slt a tt plz je peu trouver un mcd de Gestion de maintenance assistée par ordinateur plz repend moi

  10. #10
    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
    Citation Envoyé par scooba112 Voir le message
    slt a tt plz je peu trouver un mcd de Gestion de maintenance assistée par ordinateur plz repend moi
    Oui, si tu veux, tu peux !
    Mais ce ne sera pas dans ce sujet !
    Voici une piste !

  11. #11
    Membre chevronné

    Homme Profil pro
    Appui fonctionnel senior
    Inscrit en
    Juin 2007
    Messages
    461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Appui fonctionnel senior
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 461
    Points : 2 213
    Points
    2 213
    Par défaut
    Bonjour !

    Merci pour vos réponses rapides !

    Déjà, j'ai essayé d'installer SharpDevelop ! Mais il plante au lancement :'( (je sens que je me suis planter dans la version, mais apparement y a un problème de chemin ).

    De plus, je ne peux pas demander à l'admin, sachant qu'il se trouve à Paris, que je bosse sur Bordeaux, et que je suis peut être le mec le plus callé en informatique de tout le Sud-Ouest ! (d'après ce que l'on m'a dit à mon embauche...) Enfin bon, je vais me demerder pour réussir à l'installer !

    Sinon, pour répondre un peu à vos question, le Service pack installé sur les machines est le Service Pack 4 (il me semble que c'est bien le dernier, mais j'en suis pas sûr, j'ai pas l'habitude des Windows 2000)

    Voici un morceau de code que j'ai essayé sans succès :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    System.Data.OleDb.OleDbConnection MyConnection;
     
    MyConnection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; data source=C:\\myData.XLS; Extended Properties=Excel 9.0;");
    J'ai aussi essayé d'installer une version plus récente du moteur Jet et du Framework .NET ..... Echec ..... (c'est dommage, au pire j'aurai pu les glissés dans un setup )

    Voilà !

    Sinon, entretemps, je me suis penché un peu plus sur les interops, qui s'avère effectivement très difficiles à mettre en place, dotant plus sur des machines dont la version est inférieure à XP

    Si cela continue, je crois bien que je vais retourner en C++ pour utiliser COM directement !

    Bon ben voilà, à ce que je vois, j'ai encore pondu un roman

    Et merci encore pour votre aide !

  12. #12
    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
    Citation Envoyé par Lutarez Voir le message
    Sinon, pour répondre un peu à vos question, le Service pack installé sur les machines est le Service Pack 4 (il me semble que c'est bien le dernier, mais j'en suis pas sûr, j'ai pas l'habitude des Windows 2000)
    Oui, c'est ça, c'est bien le dernier. Je pensais qu'une mise à jour MDAC serait fournie avec, mais ce n'est apparement pas le cas.
    Citation Envoyé par Lutarez Voir le message
    J'ai aussi essayé d'installer une version plus récente du moteur Jet et du Framework .NET ..... Echec ..... (c'est dommage, au pire j'aurai pu les glissés dans un setup )
    Qu'entends-tu par "mise à jour du moteur Jet" ?
    Pourquoi n'essayerais-tu pas de mettre à jour les composants MDAC ? (et d'embarquer un setup dans le deploiement de ton appli, ou alors voir ça avec l'admin Windows de ta boite)

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

Discussions similaires

  1. [VB6] Problème de lecture d'un fichier excel
    Par Requin15 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 23/03/2006, 18h10
  2. [CSV] Ecrire et Lire un fichier Excel depuis PHP
    Par cocaetjusdorange dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2006, 12h10
  3. macros word et lecture dans un fichier excel
    Par antrax2013 dans le forum Windows
    Réponses: 2
    Dernier message: 01/10/2005, 20h05
  4. comment fermer un fichier Excel depuis Access?
    Par audrey_desgres dans le forum Access
    Réponses: 14
    Dernier message: 21/06/2005, 13h43
  5. Ouvrir un fichier excel depuis access
    Par ptitegrenouille dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 03/05/2005, 12h47

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