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

ASP.NET Discussion :

Probleme de lecture avec fichie Excel


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 72
    Points : 38
    Points
    38
    Par défaut Probleme de lecture avec fichie Excel
    j'ai créé une fonction qui lise les données (les lignes ) dans ma fichier excel, pour les insérés dans ma base de données , mais le problème c'est que ma fonction ne s'arrête pas de bouclé sur les lignes de mon fichier excel même si j'ai fait la condition d'arrêt !=Null(ma fonction lise les ligne vide ) , ce qui me génère un exception.
    ???

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     public Void Fonction(string location)
            {
                string Path = location;
                // initialize the Excel Application class
                Excel.ApplicationClass app = new ApplicationClass();
     
                // create the workbook object by opening the excel file.
                Excel.Workbook workBook = app.Workbooks.Open(Path, 0, true , 5,
              "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false,
              0, true);
     
                // get the active worksheet using sheet name or active sheet
                Excel.Worksheet workSheet = (Excel.Worksheet)workBook.ActiveSheet;
                int index = 0;
                object rowIndex = 2;//start line    
                object colIndex3 = 1;
     
                try
                {
                    while ((string)((Excel.Range)workSheet.Cells[rowIndex, colIndex3]).Value2 != null)
                    {
                        rowIndex = 2 + index;
                        string Champ = ((Excel.Range)workSheet.Cells[rowIndex, colIndex3]).Value2.ToString();
    // ma fonction qui fait les insertions dans ma base de données
                        mafonction.insert(Champ );
                        ++index;
                    }
             }
             catch (Exception ex)
             {app.Quit(); }
    }

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 581
    Points
    581
    Par défaut
    Avant tout propos il est très fortement déconseillé de faire de l'automation sur des serveur de prod:
    http://support.microsoft.com/kb/257757/fr

    petit exemple de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    myDataSet = new System.Data.DataSet();
    OleDbConnection excelConn = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; data source=" +
    	spreadSheeetName +
    	"; Extended Properties=Excel 8.0;");
     
    OleDbDataAdapter da = new OleDbDataAdapter("select * from [Sheet1$]",excelConn);
    da.Fill(dsBatchSpreadsheet);
    excelConn.Close();
    L'Homme est doté de 2 yeux et de 2 oreilles pour voir et entendre deux fois plus qu'il ne parle

    Je ne réponds pas au questions par mp. Merci

  3. #3
    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
    Effectivement, l'accès via ADO devrait être plus simple dans ton cas.

    Si tu décides toutefois de garder ton code actuel, il te faut faire une vérification supplémentaire sur la cellule Excel, car lorsque la cellule est vide, l'objet (Excel.Range)workSheet.Cells[rowIndex, colIndex3] vaut null, d'où l'exception.

    Voilà à quoi devrait ressembler ton while :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    while (
    ((Excel.Range)workSheet.Cells[rowIndex, colIndex3]) != null &&
    ((Excel.Range)workSheet.Cells[rowIndex, colIndex3]).Value2 != null
    )
    PS : tu n'as pas besoin de faire un cast en string si tu vérifies la valeur null.

Discussions similaires

  1. Réponses: 8
    Dernier message: 21/07/2010, 14h07
  2. Probleme de lecture avec Internet Explorer
    Par manu7607 dans le forum InfoPath
    Réponses: 5
    Dernier message: 24/09/2009, 17h29
  3. Probleme de lecture avec le second accompte
    Par ndurieu dans le forum VBA Outlook
    Réponses: 2
    Dernier message: 25/02/2009, 09h17
  4. Probleme de lecture de fichier Excel sous Access
    Par tribaleur dans le forum VBA Access
    Réponses: 6
    Dernier message: 10/03/2008, 07h51
  5. Probleme de lecture avec EEPROM
    Par Aliveli dans le forum C
    Réponses: 4
    Dernier message: 13/06/2007, 09h44

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