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

  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.

  9. #9
    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
    Grand merci @ MONSIEUR blondelle
    T'aurais pas de la doc?
    Y'en avait une avant sur developpez.net mais j'la trouve plus dans les tutos
    Encore merci.

  10. #10
    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
    sony351 a ecrit:
    Grand merci @ MONSIEUR blondelle
    T'aurais pas de la doc?
    Y'en avait une avant sur developpez.net mais j'la trouve plus dans les tutos
    Encore merci.
    Pas de quoi mais "Monsieur" est de trop.
    Pour la Doc je confirme ce qui a deja ete dit il n'y en a pas si tu veux faire des recherches il y a essentiellement des exemples sous delphie, si tu veux lancer des recherches fait les avec "ole word" ou "automation word" il y a quelques site en allemand sinon tu peu t'inspirer d'un code VBE c'est dailleurs ce que j'ai fait, et le dernier recour c'est le FORUM.

  11. #11
    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
    Oui Merci
    mais l� j'ai un nouveau souci, en effet csv c'est bien mais le souci c'est que quand j'enregistre en xls avec le bon format et tout et tout �a marche sauf qu'il me fait sauter mes z�ro devant dans mes c�llules pour des num�ros de t�l�phone par exemple
    alors j'essais avec du txt tt en regardant les exemples sous delphie mais l� je bloque avec Array

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    Workbooks.OpenText Filename:="E:\MD3\TEMP\Classeur1.txt", Origin:=xlMSDOS, _
            StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
            ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
            , Space:=False, Other:=False, FieldInfo:=Array(Array(1, 2), Array(2, 2), _
            Array(3, 1), Array(4, 1)), TrailingMinusNumbers:=True
    Comment transformer �a en C++

  12. #12
    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
    Sous Excel en VBE
    le code
    Sub Macro1()
    '
    ' Macro1 Macro
    ' Macro enregistr�e le 31/07/2006 par blondelle
    '

    '

    ' Met au format Text les cellules A1 jusque A14
    Range("A1:A14").Select
    Selection.NumberFormat = "@"

    ' Met au format Text la colonne B
    Columns("B:B").Select
    Selection.NumberFormat = "@"

    End Sub

  13. #13
    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 sur la FAQ pour modifier le format d'une cellule
    la modification doit se faire avant de charger le fichier

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