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

Langages Discussion :

Microsft.Office.Interop.Excel Open différence c# et VB


Sujet :

Langages

  1. #1
    Membre régulier Avatar de miniil
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 267
    Points : 76
    Points
    76
    Par défaut Microsft.Office.Interop.Excel Open différence c# et VB
    Bonjour,

    J'utilise la libraire Microsft.Office.Interop.Excel.

    J'ai réalisé mes premier test en langage VB.net mais j'aimerai passer au langage c# que je connais mieux.

    Le problème ici c'est que lorsque j'utilisais la méthode Open en VB sur un fichier .csv, le fichier était ouvert et parsé correctement sans spécifier quoi que ce soit comme paramètres à la méthode Open mis-à-part le nom de fichier (bien sûr).

    Lorsque j'utilise la même méthode sur le même fichier mais en c#, le fichier s'ouvre mais n'est pas parsé. J'ai essayer de spécifier le délimiteur mais pas de succès non plus.

    Avez-vous une idée de comment ouvrir un fichier .csv en c# et qu'il s'affiche sous forme de tableau?

    D'avance merci de votre aide.
    miniil

  2. #2
    Invité
    Invité(e)
    Par défaut
    bonjour,
    tu fais tes tests avec le même fichier ? quel est le delimiteur utilisé par ce fichier.

    envoies nous le code c#.

  3. #3
    Membre régulier Avatar de miniil
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 267
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    Oui c'est bien le même fichier.

    Le délimiteur est ; (REM : les chaînes de caractères sont entre guillemets). Je pense qu'il s'agit d'un export de DB.

    Si j'ouvre le fichier avec excel manuellement (pas par programmation), il s'affiche correctement (parsé).

    Voici le code VB que j'utilisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Private excelWorkbook As Excel.Workbook
     
    excelWorkbook = excel.Workbooks.Open("c:\files\test.csv")
     
    excel.Visible = True
    Et voici le code c#

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    excel = new Microsoft.Office.Interop.Excel.Application();
     
    //Ouverture
    addDebugLine("..... Ouverture du fichier.");
    excelWorkbook = excel.Workbooks.Open(@"C:\files\ONP.csv");
    Merci de votre aide
    miniil

  4. #4
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Bonjour,

    Pour ma part, je constate deux fichiers différents. Peux-tu refaire le test avec le même fichier en C#?
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  5. #5
    Membre régulier Avatar de miniil
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 267
    Points : 76
    Points
    76
    Par défaut
    C'est bien les deux mêmes fichiers, j'avais voulu "masquer" le nom de fichier en le remplaçant par test et je l'ai oublié dans la deuxième portion de code.
    miniil

  6. #6
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Salut,

    comment as-tu tenté de forcer le délimiteur en C# ?
    Pour ton souci j'ai un peu du mal à saisir : faire un Open va juste charger les données, il n'est pas -encore- question d'affichage.
    Plus je connais de langages, plus j'aime le C.

  7. #7
    Membre régulier Avatar de miniil
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 267
    Points : 76
    Points
    76
    Par défaut
    En effet peut-être qu'il n'est pas encore question d'affichage mais en faisant juste la même chose en vb Excel affiche seul en colonnes.

    Je ne suis pas sur mon pc pour le moment mais je posterai mon code essayé avec délimiteur.

    Mais en gros j'avais utilisé la fonction open avec les paramètres supplémentaires.
    miniil

  8. #8
    Membre régulier Avatar de miniil
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 267
    Points : 76
    Points
    76
    Par défaut
    Bonjour,

    J'avais utilisé ce code pour spécifier le délimiteur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    excelWorkbook = excelApp.Workbooks.Open(workbookPath, 0,
                    false,5,"","", false, Excel.XlPlatform.xlWindows, ";", true,
                    false, 0, true, false, false);
    miniil

  9. #9
    Expert éminent sénior

    Avatar de François DORIN
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2016
    Messages
    2 757
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2016
    Messages : 2 757
    Points : 10 697
    Points
    10 697
    Billets dans le blog
    21
    Par défaut
    Citation Envoyé par miniil Voir le message
    Lorsque j'utilise la même méthode sur le même fichier mais en c#, le fichier s'ouvre mais n'est pas parsé. J'ai essayer de spécifier le délimiteur mais pas de succès non plus.
    Je suis malgré tout très étonné de cela. Il doit y avoir une différence, même subtile, dans le code expliquant cette différence de comportement. Car c'est justement un des intérêts de la plateforme .Net : pouvoir réutiliser du code managé, quelque soit le langage dans lequel on est.

    Il nous faudrait donc le code complet de chacun de tes exemples, avec si possible un fichier d'exemple.
    François DORIN
    Consultant informatique : conception, modélisation, développement (C#/.Net et SQL Server)
    Site internet | Profils Viadéo & LinkedIn
    ---------
    Page de cours : fdorin.developpez.com
    ---------
    N'oubliez pas de consulter la FAQ C# ainsi que les cours et tutoriels

  10. #10
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Re,

    dans ton appel à Open remplace ton 5 par un 4 (semicolon delimiter) ou par un 6 (custom delimiter càd prend le premier char du string que tu passes en 9ème paramètre).
    Plus je connais de langages, plus j'aime le C.

  11. #11
    Membre régulier Avatar de miniil
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 267
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par dorinf Voir le message
    Je suis malgré tout très étonné de cela. Il doit y avoir une différence, même subtile, dans le code expliquant cette différence de comportement. Car c'est justement un des intérêts de la plateforme .Net : pouvoir réutiliser du code managé, quelque soit le langage dans lequel on est.

    Il nous faudrait donc le code complet de chacun de tes exemples, avec si possible un fichier d'exemple.
    Merci de votre réponse.

    En effet, cela m'étonne un peu également.

    Mais comment vous transférer le code complet? Les deux projets?
    miniil

  12. #12
    Membre régulier Avatar de miniil
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 267
    Points : 76
    Points
    76
    Par défaut
    Citation Envoyé par jopopmk Voir le message
    Re,

    dans ton appel à Open remplace ton 5 par un 4 (semicolon delimiter) ou par un 6 (custom delimiter càd prend le premier char du string que tu passes en 9ème paramètre).
    Non, aucun des ces deux paramètres ne fonctionnent
    miniil

  13. #13
    Membre régulier Avatar de miniil
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2003
    Messages
    267
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 47
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2003
    Messages : 267
    Points : 76
    Points
    76
    Par défaut
    Voilà, j'ai trouvé d'où vient la différence entre mes deux codes.

    Il s'agit de la version du framework .net

    Dans vb.net, j'avais utilisé le 3.5 et pour c# le 4.5.

    Malheureusement, c'est avec le framework 3.5 que cela fonctionne...
    miniil

  14. #14
    Membre expert Avatar de jopopmk
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2011
    Messages
    1 856
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 1 856
    Points : 3 570
    Points
    3 570
    Par défaut
    Citation Envoyé par miniil Voir le message
    Non, aucun des ces deux paramètres ne fonctionnent
    J'ai pas testé vu que je sais pas comment valider l'affichage voulu.
    Ce dont je parle c'est juste tiré du man' de Open sur la MSDN (cf. Workbooks.Open Method (Excel))
    Plus je connais de langages, plus j'aime le C.

Discussions similaires

  1. Erreur --> using Microsoft.Office.Interop.Excel;
    Par soufian1364 dans le forum C#
    Réponses: 3
    Dernier message: 20/03/2009, 00h09
  2. Réponses: 2
    Dernier message: 17/07/2008, 14h47
  3. [C#] Microsoft.Office.Interop.Excel Range
    Par User.Anonymous dans le forum C#
    Réponses: 8
    Dernier message: 23/11/2007, 14h58
  4. Réponses: 2
    Dernier message: 25/06/2007, 20h31
  5. Réponses: 4
    Dernier message: 21/05/2007, 18h23

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