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 :

Problème dans un programme qui génère un fichier excel


Sujet :

C#

  1. #1
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    juin 2013
    Messages
    807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2013
    Messages : 807
    Points : 326
    Points
    326
    Par défaut Problème dans un programme qui génère un fichier excel
    bonjour,
    dans mon dit programme c# que j'ai développé, il est nickel cependant il reste un soucis. J'ai remarqué que sur mon pc il marche correctement mais sur d'autre pc il y a un erreur qui dit " system.invalidOperationException : le fournisseur microsoft .ace.oledb.12.0 n'est pas inscrit sur l'ordinateur locale".

    J'ai recherché l'erreur mais je ne comprend pas en fait, voici la chaine de connexion que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
                    string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=\"Excel 8.0\";";
    quand je met :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                    string connectionString = "Driver ={ Microsoft Excel Driver(*.xls, *.xlsx, *.xlsm, *.xlsb)}; DBQ = " + filePath + ";";
    l'erreur me dit " la table externe n'est pas dans le format attendu.

    Voici le principe de mon application:
    on renseigne un fichier excel , contenant plusieurs colonnes et on choisi un dossier de sauvegarde ( où sera créé le ficheir texte en sortie) on clique sur traiter, puis le fichier texte est créé, mais quand je fais " créé", l'erreur apparait.

    merci pour vos lumières.
    Images attachées Images attachées  

  2. #2
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    juin 2013
    Messages
    807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2013
    Messages : 807
    Points : 326
    Points
    326
    Par défaut
    pour information, je me suis aidé du site : https://www.connectionstrings.com/excel-2007-odbc/

  3. #3
    Membre chevronné
    Homme Profil pro
    edi
    Inscrit en
    juin 2007
    Messages
    856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : edi

    Informations forums :
    Inscription : juin 2007
    Messages : 856
    Points : 1 828
    Points
    1 828
    Par défaut
    Est-ce-qu'il y a bien Excel sur l'ordinateur cible ? Et si oui est-ce-que c'est la même version que sur celui de développement ?

  4. #4
    Membre expert
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    mars 2005
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2005
    Messages : 1 740
    Points : 3 250
    Points
    3 250
    Par défaut
    J'ai recherché l'erreur mais je ne comprend pas en fait
    La première ligne de l'erreur stipule "Le fournisseur 'Microsoft.ACE.OLEDB12.0' n'est pas inscrit sur l'ordinateur local".
    Tu as cherché quoi comme erreur ?

    Le premier lien Google avec ton message d'erreur.
    https://social.msdn.microsoft.com/Fo...orum=vstudiofr

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    juin 2013
    Messages
    807
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : juin 2013
    Messages : 807
    Points : 326
    Points
    326
    Par défaut
    bonjour,
    merci pour vos retour.
    finalement j'ai utilisé un code trouvé sur internet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
                    if (filePath.Trim().EndsWith(".xlsx"))
                    {
     
                        connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 12.0 Xml;HDR=YES;IMEX=1\";", filePath);
     
                    }
    ça à l'air de marché.
    le problème est qu'un de mes collègue utilisant le programme sur son pc portable avait cette erreur.

    A ma connaissance, il ne s'est plus reproduit.

    Est-ce-qu'il y a bien Excel sur l'ordinateur cible ? Et si oui est-ce-que c'est la même version que sur celui de développement ?
    Oui , il s'agit bien d'un fichier excel au format xlsx que l'on utilise.

    La première ligne de l'erreur stipule "Le fournisseur 'Microsoft.ACE.OLEDB12.0' n'est pas inscrit sur l'ordinateur local".
    Tu as cherché quoi comme erreur ?

    Le premier lien Google avec ton message d'erreur.
    https://social.msdn.microsoft.com/Fo...orum=vstudiofr
    J'avais recherché pourquoi il me met cette erreur mais pour le moment je n'ai eu aucun retour depuis la modification.

    merci à vous

  6. #6
    Membre expert
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    mars 2005
    Messages
    1 740
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : mars 2005
    Messages : 1 740
    Points : 3 250
    Points
    3 250
    Par défaut
    Sinon, en tenant compte du fait que les fichier XLS sont obsolète depuis presque 14 ans, tu pourrais te concentrer uniquement sur les fichiers XLSX.
    Et du coup, ça te permettrait d'utiliser des librairies modernes pour créer ou éditer ton fichier Excel.

    Dans les gratuit, tu as :
    Open XML : c'est la référence ! Mais un peu long à maitriser complètement, cela dépend de ce que tu souhaites faire.
    Closed XML : encapsule et simplifie l'utilise d'Open XML. Je l'utilise régulièrement et je ne trouve rien à y redire.

Discussions similaires

  1. Réponses: 1
    Dernier message: 18/05/2014, 17h20
  2. Réponses: 0
    Dernier message: 11/08/2012, 12h33
  3. Créer un programme qui ouvre un fichier Excel
    Par Kris0311 dans le forum C#
    Réponses: 4
    Dernier message: 13/07/2010, 15h07
  4. Réponses: 2
    Dernier message: 25/02/2009, 15h08
  5. Réponses: 3
    Dernier message: 22/01/2008, 08h42

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