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

VB.NET Discussion :

Convertir fichier Excel en fichier CSV (avec séparateurs ; )


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    Ingénieur essais
    Inscrit en
    Juillet 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur essais
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 41
    Par défaut Convertir fichier Excel en fichier CSV (avec séparateurs ; )
    Bonjour à toutes et à tous !

    Je souhaiterai convertir un fichier Excel en fichier CSV avec des séparateurs ; .

    Après quelques recherches sur internet, j'en ai déduis qu'il suffisait d'enregistrer le fichier excel sous le format CSV:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FichierExcel.ActiveWorkbook.SaveAs(FileName:=chemin & NomFichier2 & ".csv", FileFormat:=xlCSV)
    Cependant, mon programme ne reconnait pas "xlCSV".

    Je travaille sous Microsoft Visual Basic 2010 Express.

    Merci bien

    joseldsm

  2. #2
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Salut,
    remplace :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FichierExcel.ActiveWorkbook.SaveAs(FileName:=chemin & NomFichier2 & ".csv", FileFormat:=xlCSV)
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FichierExcel.ActiveWorkbook.SaveAs(FileName:=chemin & NomFichier2 & ".csv", XlFileFormat.xlCSV)

    Edit :
    Préalablement utiliser (avant la première sub de ton module) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Imports Microsoft.Office.Interop.Excel

  3. #3
    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
    Par défaut
    Salut,

    d'apèrs cette fiche MSDN les possibilités pour le paramètre de format sont référencés via l'énumération XlFileFormat. Je connais peu VB, mais en C# on doit préfixer par le nom de l'énum pour atteindre ses valeurs (ex. XlFileFormat.xlCSV). Après ton souci vient peut-être de l'utilisation d'une vieille version du COM. Perso j'ai testé avec Microsoft Excel 14.0 Object Library :
    - mettre l'extension .csv ne suffit pas à ce que le moteur détecte le format (on s'en doutait mais fallait essayer, ça mange pas de pain),
    - avec XlFileFormat.xlCSV en param j'ai bien un CSV "lisible", avec les champs séparés par ... de simples virgules.

    Bonne recherche.

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur essais
    Inscrit en
    Juillet 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur essais
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 41
    Par défaut
    Merci beaucoup pour votre aide !

    Malheureusement il ne reconnait toujours pas "xlCSV", il en est de même pour l'importation de "Microsoft.Office.Interop.Excel"...

    J'ai du mal à comprendre le pourquoi de tout cela :/ Dans toutes mes recherches cela semble être la solution..

    En ce qui concerne la virgule ou le point-virgule, j'essaierai de voir ça dans un second temps

  5. #5
    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
    Par défaut
    Si tu ne trouves pas le namespace Microsoft.Office.Interop.Excel c'est peut-être que tu n'as pas référencé la lib COM ?
    Mais du coup il ne devrait pas non plus trouver les classes Application et WorkBook ... bizarre.

  6. #6
    Membre averti
    Homme Profil pro
    Ingénieur essais
    Inscrit en
    Juillet 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur essais
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 41
    Par défaut
    J'en ai aucune idée également malheureusement :/

  7. #7
    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
    Par défaut
    Si tu passes ta souris sur WorkBook VS t'affiche quoi comme type ? Même question pour Application ?
    Quelle est le nom de la lib COM Excel que tu as référencée dans ton projet ?

  8. #8
    Invité
    Invité(e)
    Par défaut
    bonjour,
    que représente FichierExcel?

    si c'est ton WorkBook alors
    non?

  9. #9
    Membre averti
    Homme Profil pro
    Ingénieur essais
    Inscrit en
    Juillet 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur essais
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 41
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FichierExcel = CreateObject("Excel.application")
    FichierExcel.Workbooks.Open(chemin & NomFichier2 & ".xlsx")
    FichierExcel est mon application Excel.

    Même en enlevant "Workbooks", j'ai la même erreur malheureusement.

  10. #10
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FichierExcel = CreateObject("Excel.application")
    Dim Wb as object=FichierExcel.Workbooks.Open(chemin & NomFichier2 & ".xlsx")
    Wb.saveAs
    là ont est plus en .net mais en V6! CreatObject n'existe pas en Vb.net!

  11. #11
    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
    Par défaut
    Houla ! CreateObject c'est du spé VB ...

    Bon, du coup je pense que tu n'as pas référencé la lib :
    - clique droit sur ton projet dans la fenêtre "explorateur de solution",
    - dans le menu contextuel clique sur "Ajouter une référence ...",
    - dans la boîte de dialogue, dans le volet "COM", sélectionne la catégorie "Bibliothèques de types",
    - dans la liste de droite recherche "Microsoft Excel X Object Library" (le X est un chiffre, chez moi c'est "14.0") et coche sa case,
    - clique sur "OK" pour finaliser l'ajout de la référence.

    Maintenant tu peux importer Microsoft.Office.Interop.Excel et tu as accès à toutes ses fonctionnalités (tu devrais même pouvoir te passer de CreateObject pour instancier un "vrai" objet Excel.Application).

  12. #12
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    pour information,voila comment gérer le CreateObject en vb.net!
    Code Vb.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    dim OngExcel as Object =CreateObject("Excel.Application")
    Public Function CreateObject(ByVal app As String) As Object
            Dim AppType As Object = Type.GetTypeFromProgID(app)
            Dim ApplInst As Object = Activator.CreateInstance(AppType)
            Return ApplInst
    End Function

  13. #13
    Membre averti
    Homme Profil pro
    Ingénieur essais
    Inscrit en
    Juillet 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur essais
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 41
    Par défaut
    Merci beaucoup de votre aide !

    J'y suis presque, mais dans l'onglet COM je n'ai pas de catégories, je n'ai que le listing des librairies.
    De plus, impossible de trouver "Microsoft Excel X Object Library" ...
    J'ai bien "Microsoft Office 15.0 Object Library" mais pas de Excel :/

  14. #14
    Membre averti
    Homme Profil pro
    Ingénieur essais
    Inscrit en
    Juillet 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur essais
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 41
    Par défaut
    C'est bon j'ai réussi à ajouter la librairie "Microsoft Excel X Object Library" qui n'apparaissait pas dans l'onglet COM.

    Pour cela je l'ai ajouté manuellement avec le chemin suivant :
    C:\Program Files\Microsoft Office 15\Root\Office15\EXCEL.EXE
    ou
    C:\Programmes\Microsoft Office 15\Root\Office15\EXCEL.EXE

    Il reconnait donc maintenant l'importation Microsoft.Office.Interop.Excel.
    Mais toujours pas le fameux "XlFileFormat:=xlCSV"

  15. #15
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    695
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 695
    Par défaut
    Bonjour,
    à tester :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FileFormat:=XlFileFormat.xlCSV

  16. #16
    Membre averti
    Homme Profil pro
    Ingénieur essais
    Inscrit en
    Juillet 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur essais
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2013
    Messages : 41
    Par défaut
    Problème résolu en utilisant la syntaxe suivante : "FileFormat:=Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV"

    Merci à tous pour votre grande aide !

  17. #17
    Invité
    Invité(e)
    Par défaut
    pour info
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Imports Microsoft.Office.Interop.Excel
    Imports Microsoft.Office.Interop.Excel.XlFileFormat
    Module Module1
        Sub Main()
            Dim Xls As New Microsoft.Office.Interop.Excel.Application
            Xls.Visible = True
            Dim Wb As Microsoft.Office.Interop.Excel.Workbook = Xls.Workbooks.Add
            Wb.Sheets(1).range("A1:C20").value = "toto"
            Wb.SaveAs(Filename:="C:\temp\TEST.csv", FileFormat:=xlCSV, CreateBackup:=False, Local:=True)
        End Sub
    End Module

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 11/09/2014, 13h40
  2. Réponses: 1
    Dernier message: 10/09/2014, 21h18
  3. Comment convertir un fichier Excel en fichier csv ou txt ?
    Par djibril dans le forum Téléchargez
    Réponses: 0
    Dernier message: 31/05/2011, 19h04
  4. Réponses: 1
    Dernier message: 03/04/2007, 18h31
  5. Convertir fichier Excel en fichier XML
    Par rafiq25 dans le forum C#
    Réponses: 2
    Dernier message: 28/03/2007, 17h12

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