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 :

Probleme de lecture d'un fichier Excel


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 19
    Par défaut Probleme de lecture d'un fichier Excel
    Bonjour,

    je n'arrive pas à lire mon fichier Excel voila mon code
    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
    try
            {
                int count;
                string probeConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                                      "Data Source=test.xls;" +
                                      "Extended Properties=\"Excel 8.0;HDR=YES\"";
                using (OleDbConnection probeConn = new OleDbConnection(probeConnStr))
                {
                    probeConn.Open();
                    string probe = "SELECT COUNT(*) FROM geo";
                    using (OleDbCommand probeCmd = new OleDbCommand(probe, probeConn))
                    {
                        count = (int)probeCmd.ExecuteScalar();
                    }
                }
                return count;
            }
            catch (Exception ex)
            {
                return 0;
            }
    le fichier excel en piece jointe

    L' erreur intervient sur la ligne d'exécution de la requète
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    count = (int)probeCmd.ExecuteScalar();
    Le moteur de base de données Microsoft Jet n'a pas pu trouver l'objet 'geo'. Assurez-vous que l'objet existe et que vous avez correctement saisi son nom et son chemin d'accès. [...]

    Si quelqu'un a une idée sur mon erreur.

    merci d'avance.
    Images attachées Images attachées  

  2. #2
    Membre éprouvé
    Inscrit en
    Avril 2007
    Messages
    77
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 77
    Par défaut
    Bonjour,
    tu utilise un code de liaison à une base de données pour lire ton fichier Excel. Es-tu sur de pouvoir faire ça?
    En tout cas, tu dois pouvoir le faire assez simplement avec l'interop.
    Petit exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Excel.Application appExcel = new Excel.ApplicationClass();
    Excel._Workbook classeur = appExcel.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet);
    Excel._Worksheet feuille = (Excel._Worksheet)classeur.ActiveSheet;
    contenu = feuille.Cells[1, 1] ;

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Avril 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2008
    Messages : 19
    Par défaut
    Bonjour,

    voila la solution que j'ai cherché sur le net :

    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
     
    // déclaration objet excel
     Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
                    Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
                    Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
                    Range range = null;
     
    // listFic[i] correspond a l'ensemble des fichiers excel listé au préalable
                    ObjWorkBook = ObjExcel.Workbooks.Open(listFic[i].ToString(), Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
     
    // on selectionne la feuille
                    ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
     
    // on affecte l'objet range a la feuille
                    // get a range to work with
                    range = ObjWorkSheet.get_Range("A1", Missing.Value);
                    // get the end of values to the right (will stop at the first empty cell)
                    range = range.get_End(XlDirection.xlToRight);
                    // get the end of values toward the bottom, looking in the last column (will stop at first empty cell)
                    range = range.get_End(XlDirection.xlDown);
     
                    // get the address of the bottom, right cell
                    string downAddress = range.get_Address(
                        false, false, XlReferenceStyle.xlA1,
                        Type.Missing, Type.Missing);
     
                    // Get the range, then values from a1
                    range = ObjWorkSheet.get_Range("A1", downAddress);
     
    // j'utilise une arrayList pour stocker les infos provenant des cellules du fichier excel
                    ArrayList listInfo = new ArrayList();
                    listInfo.Add(((Range)range.Cells[39, 3]).Value2.ToString());
                    listInfo.Add(((Range)range.Cells[41, 3]).Value2.ToString());
                    listInfo.Add(((Range)range.Cells[43, 3]).Value2.ToString());
                    listInfo.Add(((Range)range.Cells[37, 9]).Value2.ToString());
                    listInfo.Add(((Range)range.Cells[41, 9]).Value2.ToString());
                    listInfo.Add(((Range)range.Cells[45, 3]).Value2.ToString());
    en espérant que ça serve à quelqu'un ^^

  4. #4
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 33
    Par défaut
    Bonjour

    Citation Envoyé par nark07 Voir le message
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                    range = ObjWorkSheet.get_Range("A1", Missing.Value);
    il vaut pas mieux utiliser Worksheet.Cells ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    range = ObWorksheet.Cells;
    et je comprend pas bien ce qui se passe ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
                    // get the end of values to the right (will stop at the first empty cell)
                    range = range.get_End(XlDirection.xlToRight);
                    // get the end of values toward the bottom, looking in the last column (will stop at first empty cell)
                    range = range.get_End(XlDirection.xlDown);
    Parce que si tu le stocke dans range, ça va écraser tes précédentes valeurs non ????

  5. #5
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France, Deux Sèvres (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2010
    Messages : 33
    Par défaut
    Bon après quelque recherche sur le site de MSDN je vous envoie la solution que j'ai utilisée.

    Source : La class Worksheet

    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
    // déclaration objet excel
    Microsoft.Office.Interop.Excel.Application ObjExcel = new Microsoft.Office.Interop.Excel.Application();
    Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
    Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;
    Range range = null;
     
    ObjWorkBook = ObjExcel.Workbooks.Open(
                                                                     Fichier_excel,
    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
     
    // on selectionne la feuille
    ObjWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)ObjWorkBook.Sheets[1];
     
    range = worksheet.UsedRange
     
     // Used range retourne un tableau contenant toutes les cases utilisées dans le fichier excel. 
    //Si il tombe sur une case vide il mettra null dans le tableau à la fin
     
    Object[,] tab = (Object[,]) range.Value2;
    Vous obtenez un tableau d'object[ligne , colonne].

    Après c'est que du traitement de tableau!!!

    en espérant aider


    bonne journée

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

Discussions similaires

  1. Probleme lecture dans un fichier Excel ferme
    Par kent17 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/07/2010, 09h29
  2. Probleme de lecture d'un fichier excel avec VB6
    Par Ora92_IDS dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 10/04/2008, 14h17
  3. [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, 17h10
  4. macros word et lecture dans un fichier excel
    Par antrax2013 dans le forum Windows
    Réponses: 2
    Dernier message: 01/10/2005, 19h05
  5. Probleme de lecture d'un fichier XML
    Par chleuh dans le forum Langage
    Réponses: 8
    Dernier message: 30/08/2005, 12h04

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