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 Fichier Excel


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
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Par défaut Sauvegarde Fichier Excel
    Salut à tous,

    dernière question et j'ai fini avec mon interfaçage Excel

    Pour rappel : je crée un fichier "xls" qui est en fait un fichier csv (je sais je triche)

    Ensuite je l'ouvre avec la méthode OpenText comme suit :

    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
     
    // Ouverture d'Excel et traitement du fichier
     Variant vXLWorkbooks, vXLWorkbook, vMSExcel;
     AnsiString vFileName = nf; //nom du fichier
     Variant vOrigin = 1; // = xlWindows format Windows (par défaut)
     Variant vStartRow = 1; // on commence à la 1ère ligne (par défaut)
     Variant vDataType = 1; // = xlDelimited format délimité (par défaut)
     Variant vTextQualifier = 1; // = xlTextQualifierDoubleQuote qualificateur de texte (par défaut)
     Variant vConsecutiveDelimiter = false; // pas de délimitateur consécutif
     Variant vTab = false; // pas délimitateur tab
     Variant vSemicolon = true; // délimitateur ";"
     Variant vComma = false; // pas délimitateur virgule
     Variant vSpace = false; // pas délimitateur espace
     Variant vOther = false; // pas délimitateur autre
     Variant vOtherChar = ""; // délimitateur Other non actif
     
     Variant vFieldInfo;     // On veut {{1,2},{2,2},{3,4}}
     vFieldInfo = VarArrayCreate(OPENARRAY(int, (0, 2, 0, 1)), varInteger);
     vFieldInfo.PutElement(1,0,0); //on affecte 1 (Colonne Excel N°1) à la ligne 0 colonne 0 du tab
     vFieldInfo.PutElement(2,0,1); //on affecte 2 (Format Texte = 2) à la ligne 0 colonne 1 du tab
     vFieldInfo.PutElement(2,1,0); //on affecte 2 (Colonne Excel N°2) à la ligne 1 colonne 0 du tab
     vFieldInfo.PutElement(2,1,1); //on affecte 2 (Format Texte = 2) à la ligne 1 colonne 1 du tab
     vFieldInfo.PutElement(3,2,0); //on affecte 3 (Colonne Excel N°3) à la ligne 2 colonne 0 du tab
     vFieldInfo.PutElement(4,2,1); //on affecte 4 (Format Date JMA = 4) à la ligne 2 colonne 1 du tab
     
     vMSExcel = Variant::CreateObject("Excel.Application");
     vMSExcel.OlePropertySet("Visible", true);
     vXLWorkbooks = vMSExcel.OlePropertyGet("Workbooks");
     vXLWorkbook = vXLWorkbooks.OleFunction("OpenText", vFileName.c_str(), vOrigin, vStartRow, vDataType, vTextQualifier, vConsecutiveDelimiter, vTab, vSemicolon, vComma, vSpace, vOther, vOtherChar, vFieldInfo);
    Dernier problème : la sauvegarde de mon fichier :

    Si je fais un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    vXLWorkbook.OleProcedure("Save");
    j'ai pas de pb à la compilation mais lors de l'éxecution, plantage sur cette ligne. Je pense que cela vient du fait de l'ouverture en mode texte et sauvegarde en mode Excel

    Une dernière idée et je ne vous embête plus (du moins avec Excel !)

    Xav

  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
    Est ce que tu ne serait pas oblige comme pour l'ouverture de declarer tes separateurs.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Par défaut
    j'ai essayé de faire un saveas avec un paramètre xlNormal pour l'enregistrement mais le résultat est le même : plantage

    Je n'ai a priori pas besoin de déclarer mes séparateurs puisque là j'ai un fichier xls en bonnet et due forme.

    Xav

  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
    Un poste dans le forum a voir si tu peux l'adapter
    http://www.developpez.net/forums/sho...ighlight=excel

  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
    Dans la FAQ Delphi
    auteur : bidou
    Pour enregistrer le classeur ouvert, utilisez la commande suivante :
    MonClasseur.Save(0);

    Pour enregistrer le classeur avec un nouveau nom :
    MonClasseur.SaveAs('c:\tuto\excel.xls',
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    xlNoChange,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);

    Il est possible d'appeler directement la boite de dialogue "Enregistrer sous..." d'Excel à l'aide de la commande suivante :
    MonClasseur.SaveAs(ExcelApplication1.GetSaveAsFilename(),
    EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
    xlNoChange,EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
    Peut etre une solution

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    118
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 118
    Par défaut
    Merci blondelle pour ton aide

    Je vais essayer la 2ème solution ce soir et je te tiens au courant.
    La 1ère solution est celle que je fais et qui me provoque une erreur.

    Xav

Discussions similaires

  1. Sauvegarde fichier Excel
    Par sylvain7 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 05/03/2009, 13h40
  2. sauvegarde fichier excel sans boite dialogue
    Par ghostvb dans le forum VBScript
    Réponses: 6
    Dernier message: 10/07/2008, 17h39
  3. Sauvegarde Fichier excel
    Par aliboubou dans le forum VBA Access
    Réponses: 1
    Dernier message: 10/05/2007, 09h21
  4. Sauvegarde fichier excel avec la date
    Par Renardo dans le forum Access
    Réponses: 8
    Dernier message: 03/09/2006, 14h20
  5. Sauvegarde fichier excel
    Par tiopan dans le forum VBA Access
    Réponses: 2
    Dernier message: 22/10/2003, 13h36

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