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 :

Sauvegarde d'un fichier Excel au format txt


Sujet :

C++Builder

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par d�faut Sauvegarde d'un fichier Excel au format txt
    Je cherche � transformer un fichier Excel (valeurs num�riques)

    - en un fichier texte sous C++ Borland
    - avec un point comme s�parateur d�cimal
    - et des espace entre les colonnes.

    J'ai trouv� quelques informations fort utiles chez "developpez.com", mais pas tout ce qui m'est n�cessaire.
    Voici ce que j'ai r�cup�r�:
    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
        Variant vMSExcel, vFileName, vXLWorkbooks, vXLWorkbook;
        //Ouverture d'une nouvelle instance
        vMSExcel = Variant::CreateObject("Excel.Application");
        vMSExcel.OlePropertySet("Visible", false);  // Application npn visible par l'utilisateur
        vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
    
       // Modifie le s�parateur d�cimal
        //La premi�re ligne permet de sp�cifier la valeur que l'on veut pour nouveau s�parateur d�cimal.                Mais comment choisir le point ?
        vMSExcel.OlePropertySet("DecimalSeparator", vText); 
        //La seconde ligne d�sactive l'utilisation des s�parateurs syst�mes.
        vMSExcel.OlePropertySet("UseSystemSeparators", false);
     
        //Ouverture d'un classeur existant
        vFileName = "C:\\toto.xls";
        vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
        vXLWorkbook = vXLWorkbooks.OleFunction("Open", vFileName);
    
    // c'est l� que je ne sais plus faire
    
    //
        //vFileName = "C:\\toto.txt";
        //vXLWorkbook.OleProcedure("Saveas", vFileName);
    
        vMSExcel.OleFunction("Quit"); // on ferme
        vMSExcel = Unassigned;
    Quelqu'un peut-il m'aider � terminer cette fonction ?

    Merci par avance

  2. #2
    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
    Salut Lalanne:
    Pour sauvegarder un fichier xls sous un autre format il ne suffit pas de changer l'extension car cela provoque une erreur il faut donc utiliser la fonction "sauvegarder sous" complete
    Le code pour utiliser cette fonction complete
    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
     
    //FileFormat = 6; // fichier CSV (extension .csv)
    //FileFormat = -4158; //fichier TXT et separateur tabulation (extension .txt)
    FileFormat = 36; //fichier TXT et separateur espace (extension .prn)
    //FileFormat = -4143; // valeur de xlNormal "sauvegarde sous format classeur excel"
                        // pour les autres format de sauvegarde faire un essai avec VBE
    // creation d'un mot de passe protegeant l'ouverture du fichier
    Mot_passe = Unassigned; //"jpb"; // pour la protection du fichier
    Password = Unassigned; //Mot_passe; // mot de passe pour proteger le fichier
    WriteResPassword = Unassigned; //Mot_passe; // confirmation du mot de passe
    ReadOnlyRecommended = false; // fichier en lecture seule (False True Unassigned)
    // creation d'une copie si le fichier existe deja
    CreateBackup = false;  //Unassigned; // creation d'une copie (False True Unassigned)
    // fermeture d'un fichier (ouvert au format csv) au format xls
    vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\essais.prn";
    vXLWorkbook.OleProcedure("Saveas", vFileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup);
    Pense a utiliser les balises de code # et ecrit ton code entre ces balises ce sera plus lisible

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par d�faut
    Citation Envoy� par blondelle
    Salut Lalanne:
    Pour sauvegarder un fichier xls sous un autre format il ne suffit pas de changer l'extension car cela provoque une erreur il faut donc utiliser la fonction "sauvegarder sous" complete
    Le code pour utiliser cette fonction complete
    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
     
    //FileFormat = 6; // fichier CSV (extension .csv)
    //FileFormat = -4158; //fichier TXT et separateur tabulation (extension .txt)
    FileFormat = 36; //fichier TXT et separateur espace (extension .prn)
    //FileFormat = -4143; // valeur de xlNormal "sauvegarde sous format classeur excel"
                        // pour les autres format de sauvegarde faire un essai avec VBE
    // creation d'un mot de passe protegeant l'ouverture du fichier
    Mot_passe = Unassigned; //"jpb"; // pour la protection du fichier
    Password = Unassigned; //Mot_passe; // mot de passe pour proteger le fichier
    WriteResPassword = Unassigned; //Mot_passe; // confirmation du mot de passe
    ReadOnlyRecommended = false; // fichier en lecture seule (False True Unassigned)
    // creation d'une copie si le fichier existe deja
    CreateBackup = false;  //Unassigned; // creation d'une copie (False True Unassigned)
    // fermeture d'un fichier (ouvert au format csv) au format xls
    vFileName = "C:\\Documents and Settings\\blondelle\\Mes documents\\essais.prn";
    vXLWorkbook.OleProcedure("Saveas", vFileName, FileFormat, Password, WriteResPassword, ReadOnlyRecommended, CreateBackup);
    Pense a utiliser les balises de code # et ecrit ton code entre ces balises ce sera plus lisible

    Bonjour,

    Merci pour cette r�ponse rapide . Excuse moi pour les balises. Je n'ai pas l'habitude.
    Cela fonctionne tr�s bien. Ma seule question restante: Puis-je �viter apr�s la sauvegarde au format txt ou prn l'affichage de la boite demandant "Voulez-vous enregistrer les modifications apport�es au classeur "toto" ?" (de fa�on � ce que l'op�ration soit compl�tement transparente pour l'utilisateur).

    Merci encore

    Lalanne

  4. #4
    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
    Lalanne a ecrit:
    Puis-je �viter apr�s la sauvegarde au format txt ou prn l'affichage de la boite demandant "Voulez-vous enregistrer les modifications apport�es au classeur "toto" ?" (de fa�on � ce que l'op�ration soit compl�tement transparente pour l'utilisateur).
    C'est possible a condition que le fichier n'a pas deja ete cree.
    Le code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    vXLWorkbook.OleProcedure("Close", false);
    Puis tu ferme Excel
    Le code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    // fermeture d'excel
    vMSExcel.OleFunction("Quit");
    // liberation memoire
    vMSExcel = Unassigned;

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par d�faut
    Citation Envoy� par blondelle
    Lalanne a ecrit:

    C'est possible a condition que le fichier n'a pas deja ete cree.
    Le code:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    vXLWorkbook.OleProcedure("Close", false);
    Puis tu ferme Excel
    Le code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    // fermeture d'excel
    vMSExcel.OleFunction("Quit");
    // liberation memoire
    vMSExcel = Unassigned;

    Super. Merci pour tout.

    Lalanne

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par d�faut
    Citation Envoy� par Lalanne
    Super. Merci pour tout.

    Lalanne
    Salut,

    En cas de fichier d�j� existant lors de la sauvegarde, est-il possible de g�rer une r�ponse "Non" ou "Annuler" (sinon, �a plante)?

    Merci

    Lalanne

  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
    Salut Lalanne:
    La solution que j'avais adoptee ete de tester si le fichier existe si oui de le detruire puis de sauvegarder, au lieu de le detruire tu peu le renommer.

  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
    La je viens de refaire l'essai, si le fichier existe tu a une boite de dialogue qui te demande si tu sauvegarde oui/non ou si tu annule.
    Si tu ne veu pas cette boite de dialogue alors il n'y a que la solution de mon post precedent, detruire le fichier s'il existe, puis tu execute la sauvegarde.

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    35
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 35
    Par d�faut
    Citation Envoy� par blondelle
    La je viens de refaire l'essai, si le fichier existe tu a une boite de dialogue qui te demande si tu sauvegarde oui/non ou si tu annule.
    Si tu ne veu pas cette boite de dialogue alors il n'y a que la solution de mon post precedent, detruire le fichier s'il existe, puis tu execute la sauvegarde.

    C'est bon.

    Merci encore

    Lalanne

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 1
    Dernier message: 03/04/2007, 18h31
  2. Recuperer chemin de sauvegarde d'un fichier excel
    Par Tierisa dans le forum Access
    R�ponses: 2
    Dernier message: 16/10/2006, 12h57
  3. R�ponses: 2
    Dernier message: 07/09/2006, 12h41
  4. sauvegarde d'un fichier excel csv sous le format xls
    Par blondelle dans le forum C++Builder
    R�ponses: 5
    Dernier message: 01/08/2006, 11h30
  5. lire / �crire dans un fichier excel au format xml
    Par crisflo dans le forum Format d'�change (XML, JSON...)
    R�ponses: 7
    Dernier message: 28/01/2006, 10h50

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