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++Builder Discussion :

Excel csv choisir séparateur


Sujet :

C++Builder

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 94
    Par défaut Excel csv choisir séparateur
    Bonjour,
    Je voudrai charger un csv, j'ai vu du code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    vFileName = "C:\\test2.csv";
      vNotUsed = Unassigned;
      vSeparator = 4;
      vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
      vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName, vNotUsed,
          vNotUsed,vSeparator);
    Mon fichier est séparé par des points virgules mais quand j'enregistre en fichier excel il me met tout dans la première colonne donc tous les champs sont regroupés dans la première colonnes avec les points virgules.
    Donc comment faire les amis ?
    Merci d'avance.

  2. #2
    Membre émérite
    Avatar de bandit boy
    Profil pro
    Inscrit en
    Février 2006
    Messages
    916
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 916
    Par défaut
    en fait, tu l'enregistre avec l'extension CSV normalement excel ouvre directement avec comme séparateur ;
    sinon il y a un menu spécifique lorsque d'excel un fichier txt.

  3. #3
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Un lien dans la FAQ
    je pense que tu va trouver ce que tu veux
    apparament il y a enbiguite entre la valeur 2 et 4 du separateur ";" fait un essai

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 94
    Par défaut
    ok,
    mais en fait je voudrais ouvrir un csv pour l'enregistrer aussitôt en xls :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    vMSExcel = Variant::CreateObject("Excel.Application");
      vMSExcel.OlePropertySet("Visible", true);
      Variant vFileName, vNotUsed, vSeparator;
     
      vFileName = "C:\\test.csv";
      vNotUsed = Unassigned;
      vSeparator = 1;
      vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
      vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName, vNotUsed,
        vNotUsed, vSeparator);
     
      vXLWorkbook.OleProcedure("Saveas", "C:\\test.xls");

    Donc l'instance Excel apparaît comme il le faut (c'est à dire avec les champs bien séparés et au nom de test.csv
    Puis dans la suite du code il y a vXLWorkbook.OleProcedure("Saveas", "C:\\test.xls");

    qui m'enregistre bien ce fichier mais quand je l'ouvre tout apparaît avec une seule colonne dans laquelle il y a les valeurs séparé par des points virgules

    Donc comment faire ?

  5. #5
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    J'ai fais un essai qui fonctionne apparement chez moi
    le 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
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    Variant vMSExcel, vXLWorkbooks, vXLWorkbook;
    vMSExcel = Variant::CreateObject("Excel.Application");
    vMSExcel.OlePropertySet("Visible", true);
    Variant vFileName, vNotUsed, vSeparator;
    
    vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\plan_gps\\PLAN_GPS\\télégraphe.csv";
    vNotUsed = Unassigned;
    vSeparator = 1;
    vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
    vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName, vNotUsed,
    vNotUsed, vSeparator);
    vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\plan_gps\\PLAN_GPS\\télégraphe.xls";
    vXLWorkbook.OleProcedure("Saveas", vFileName);
    }
    c'est la declaration du chemin de sauvegarde que j'ai change

  6. #6
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    J'ai crie victoire trop vite cela fait comme chez toi je cherche une solution.

  7. #7
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    On peut y arriver je l'ai fait en VBE
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro enregistrée le 24/07/2006 par blondelle
    '
     
    '
        ActiveWorkbook.SaveAs Filename:= _
            "C:\Documents and Settings\blondelle\Mes documents\plan_gps\PLAN_GPS\télégraphe.xls" _
            , FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
    End Sub
    par contre je ne sais pas le reprendre en BCB, dans le code il y a des extensions apres le nom de chemin
    l'extension de la sauvegarde est "Classeur Microsoft Office Excel"

  8. #8
    Rédacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par défaut
    Ce coup ci j'ai vraiment trouve je joint le code
    le 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
    //---------------------------------------------------------------------------
    
    #include <vcl.h>
    #pragma hdrstop
    
    #include "Unit1.h"
    //---------------------------------------------------------------------------
    #pragma package(smart_init)
    #pragma resource "*.dfm"
    TForm1 *Form1;
    //---------------------------------------------------------------------------
    __fastcall TForm1::TForm1(TComponent* Owner)
            : TForm(Owner)
    {
    Variant vMSExcel, vXLWorkbooks, vXLWorkbook;
    vMSExcel = Variant::CreateObject("Excel.Application");
    vMSExcel.OlePropertySet("Visible", true);
    Variant vFileName, vNotUsed, vSeparator, FileFormat;
    
    vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\plan_gps\\PLAN_GPS\\télégraphe.csv";
    vNotUsed = Unassigned;
    vSeparator = 1;
    vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
    vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName, vNotUsed,
    vNotUsed, vSeparator);
    FileFormat = -4143;
    vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\plan_gps\\PLAN_GPS\\télégraphe.xls";
    vXLWorkbook.OleProcedure("Saveas", vFileName, FileFormat);
    }
    //---------------------------------------------------------------------------
    si tu regarde le code VBE c'est tres similaire quand on est en debugage sur le code VBE quand on pointe le curseur on a la valeur de la variable ici "FileFormat = -4143"
    tu peu meme ajouter un mot de passe il faut le confirmer c'est tout.

Discussions similaires

  1. CSV -> Excel : Virgule comme séparateur par défaut
    Par ADbtr dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/07/2010, 09h19
  2. [CSV] Imports Excel CSV à reformater
    Par boteha dans le forum Langage
    Réponses: 13
    Dernier message: 23/01/2006, 21h41
  3. Exporter des données d'un requete SQL vers excel (csv)
    Par PrinceMaster77 dans le forum ASP
    Réponses: 9
    Dernier message: 08/10/2005, 22h28
  4. [Excel] Excel et csv
    Par gledoux dans le forum Bibliothèques et frameworks
    Réponses: 16
    Dernier message: 01/08/2005, 14h45
  5. Import Excel / CSV
    Par aston_max dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 04/07/2004, 23h31

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