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 :

Lire un fichier Excel protégé !


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Points : 16
    Points
    16
    Par défaut Lire un fichier Excel protégé !
    Bonjour,

    je cherche à réaliser un programme qui lit des données issues d'une feuille excel afin d'en faire des analyses, des graphiques etc.. (oui utiliser excel pour faire sa c'est cool mais c'est pas ce que je recherche)
    Problème majeur, le fichier xlsx est protégé par un mot de passe.

    J'ai d'abord tenter en utiliser le ExcelDataReader mais je n'ai pas trouvé de solution pour l'ouvrir avec le mot de passe, le fichier ne s'ouvre pas et mon programme m'indique "Invalid Password"
    J'ai regardé du coté de Oledb mais je suis confronté à un autre problème et en plus je n'ai pas non plus trouvé comment franchir le mot de passe.

    Avez-vous une idée ? comment récupéré des données d'un fichier excel protégé ? une libraire spécifique à utiliser ?

    (Bien entendu je connais le mot de passe, je ne cherche pas à lire des données illégalement)
    Merci d'avance.

    W.M.

  2. #2
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    https://stackoverflow.com/questions/...xcel-worksheet

    EDIT : quoiqu'il y aurait peut-être une alternative -> https://stackoverflow.com/questions/...edb-in-c-sharp

    PS : j'ai pas checké les infos, c'est juste les deux premiers résultats d'une recherche Google..

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Salut,

    j'ai au préalable fait une recherche Google et je suis donc déjà passé sur ces 2 pages. Cependant ça ne m'a pas aider. Ces exemples utilisent Oledb mais je ne m'en sort en utilisant cette librairie, notamment une erreur que je n'ai pu résoudre.

    Je me suis tourné sur EPPLUS mais étant limité en Anglais j'ai de la peine à trouver comment ouvrir un fichier protégé

  4. #4
    Membre expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Points : 3 404
    Points
    3 404
    Par défaut
    Citation Envoyé par whatsup_morty Voir le message
    Je me suis tourné sur EPPLUS mais étant limité en Anglais j'ai de la peine à trouver comment ouvrir un fichier protégé
    De ce qui est dit, il n'y a pas de moyen conventionnel pour ouvrir un fichier Excel protégé par mot de passe (cf premier lien). En revanche, il serait possible de lire les données. Dans le deuxième lien, plusieurs solutions sont proposées.

    Une d'entre-elles étant de récupérer un objet de type Datatable contenant les données de ton fichier :
    Code : 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    private string ExcelConnection(string fileName)
        {
            return
                @"Provider=Microsoft.Jet.OLEDB.4.0;" +
                @"Data Source=" + fileName + ";" +
                @"Extended Properties=" + Convert.ToChar(34).ToString() +
                @"Excel 8.0" + Convert.ToChar(34).ToString() + ";";
        }
     
        private DataTable readExcel(string fileName, string sql)
        {
            OleDbConnection conn = new OleDbConnection(ExcelConnection(fileName));
            OleDbCommand cmd = new OleDbCommand(sql, conn);
            OleDbDataAdapter adp = new OleDbDataAdapter();
            adp.SelectCommand = cmd;
            DataTable dt = new DataTable();
     
            try
            {
                adp.FillSchema(dt, SchemaType.Source);
                adp.Fill(dt);
            }
            catch
            { 
     
            }
            return dt;
        }
    Ces exemples utilisent Oledb mais je ne m'en sort en utilisant cette librairie, notamment une erreur que je n'ai pu résoudre.
    Quel erreur?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    un message d'erreur lorsque je compile

    "Le fournisseur 'Microsoft.ACE.OLEDB.12.0' n'est pas inscrit sur l'ordinateur local"
    je souhaite accéder a un fichier .xlsx (version excel 2007 et plus) donc mon connection string est légerement différent:7

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyConnection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="+path+";Extended Properties=\"Excel 12.0;HDR=YES;\"");
    J'ai chercher sur le net, apparemment il faut modifier la plateforme cible dans les propriété du projet, mais que je sois en x86, any cpu ou x64 le problème persiste.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2015
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2015
    Messages : 21
    Points : 16
    Points
    16
    Par défaut
    Bonjour,

    j'ai trouvé une solution (si des gens veulent s'en inspirer dans l'avenir)
    J'ai utiliser la librairie fournie par Microsoft (Interop.excel). La fonction d'ouverture d'un Worksheet permet d'entrer un mot de passe. Seul hic vous devez avoir excel d'installer sur la machine si vous souhaitez récupérer des données.

    Problème résolue, merci pour les réponses

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

Discussions similaires

  1. [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
  2. [VB6]Lire un fichier excel
    Par LEYLA dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 04/05/2006, 10h04
  3. [CSV] Ecrire et Lire un fichier Excel depuis PHP
    Par cocaetjusdorange dans le forum Langage
    Réponses: 7
    Dernier message: 08/02/2006, 11h10
  4. [C#] Comment lire un fichier Excel ?
    Par lemmings dans le forum ASP.NET
    Réponses: 12
    Dernier message: 23/12/2005, 11h01
  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