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

Langage Delphi Discussion :

Conversion .csv en .xls [FAQ]


Sujet :

Langage Delphi

  1. #1
    Membre régulier Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Points : 109
    Points
    109
    Par défaut Conversion .csv en .xls
    Bonjour à tous,

    Je me demandais s'il était possible de convertir directement dans le code des fichiers .csv en .xls sans que ce soit visible pour l'utilisteur. Je souhaite garder la mise à forme du .csv.

    Merci d'avance pour votre aide.

    Isa

  2. #2
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Oui, c'est possible. Essaie le code suivant :
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    procedure TMainForm.SaveAsXLS(const FileName: String);
    Var
       CSV    : String            ;
       _Excel : TExcelApplication ;
    begin
         _Excel:=Nil;
         Try
            // C'est un fichier CSV que l'on sauve, tout d'abord...
            CSV:=ExpandFileName(ChangeFileExt(FileName,feTMP));
            Try
               SaveAsCSV(CSV) ;
            Except
                  DeleteFile(CSV);
                  Raise;
            End;
            Progress.Position:=0;
            Progress.Max:=3;
            // On efface à la main, sinon Excel demande la confirmation.
            If FileExists(FileName) Then
               DeleteFile(FileName);
            // Création du serveur Excel.
            _Excel:=TExcelApplication.Create(Nil);
            // Ouverture du serveur Excel.
            ShowStatus(ssOpeningExcel);
            _Excel.Connect;
            Progress.StepIt;
            // Ouverture du .CSV
            ShowStatus(ssOpeningCSV);
            _Excel.Workbooks.OpenText(CSV,xlWindows,1,xlDelimited,xlTextQualifierDoubleQuote,False,False,True,False,False,False,EmptyParam,EmptyParam,EmptyParam,1036);
            Progress.StepIt;
            // Sauvegarde en .XLS
            ShowStatus(ssSavingXLS);
            _Excel.Workbooks.Get_Item(1).SaveAs(ExpandFileName(FileName),OleVariant(xlWorkbookNormal),EmptyParam,EmptyParam,False,False,xlNoChange,xlUserResolution,False,EmptyParam,EmptyParam,1036);
            Progress.StepIt;
         Finally
                // Fermeture du serveur Excel.
                ShowStatus(ssShutingDownExcel);
                If Assigned(_Excel) Then
                   Try
                      _Excel.Quit;
                      _Excel.Disconnect;
                   Finally
                          FreeAndNil(_Excel);
                   End;
                Progress.StepIt;
                ShowStatus(EmptyStr);
                DeleteFile(CSV);
         End;
    end;
    Bon, y'a aussi du code de gestion d'une ProgressBar, mais ça t'indiquera où mettre un tel code... ;-)
    Cette fonction sauve un CSV de manière "temporaire", puis le convertit en XLS avant d'effacer le CSV (devenu inutile).

    Par contre, il n'y a pas de mise en page dans un CSV...
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  3. #3
    Membre régulier Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Points : 109
    Points
    109
    Par défaut
    Heuu....
    Question idiote: il sort d'ou le
    SaveAsCSV(CSV)
    ????

    Comme le
    feTMP
    , c'est quoi?

    J'ai pas tout compris je crois

    Je suis vraiment trop nulle

  4. #4
    Inactif  
    Avatar de Mac LAK
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    3 893
    Détails du profil
    Informations personnelles :
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 3 893
    Points : 4 846
    Points
    4 846
    Par défaut
    Citation Envoyé par Isa31
    Question idiote: il sort d'ou le SaveAsCSV(CSV)????
    Du reste du programme. Ca va sauver les données courantes au format CSV.

    Citation Envoyé par Isa31
    Comme le feTMP, c'est quoi?
    Une chaîne de ressource : "feTMP" pour "File Extension : TMP".

    Citation Envoyé par Isa31
    J'ai pas tout compris je crois
    Le code n'est pas à copier/coller directement, voyons, c'est un extrait "brut de fonderie" de mon propre programme... Tu dois te focaliser sur la variable _Excel et le séquencement d'appel de ses méthodes.

    Citation Envoyé par Isa31
    Je suis vraiment trop nulle
    Pleure pas, va, t'es pas nulle, c'est juste une question d'habitude et d'expérience.

    Demande si tu as des soucis avec ce code, OK ?
    Mac LAK.
    ___________________________________________________
    Ne prenez pas la vie trop au sérieux, de toutes façons, vous n'en sortirez pas vivant.

    Sources et composants Delphi sur mon site, L'antre du Lak.
    Pas de question technique par MP : posez-la dans un nouveau sujet, sur le forum adéquat.

    Rejoignez-nous sur : Serveur de fichiers [NAS] Le Tableau de bord projets Le groupe de travail ICMO

  5. #5
    Membre régulier Avatar de Isa31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    267
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 267
    Points : 109
    Points
    109
    Par défaut
    Ok merci beaucoup, ca marche!!!!

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

Discussions similaires

  1. Import Fichier : Conversion .csv en .xls ou .xlsx
    Par GWuigcos dans le forum Excel
    Réponses: 4
    Dernier message: 01/07/2014, 13h24
  2. conversion .csv en .xls
    Par black cat747 dans le forum MATLAB
    Réponses: 3
    Dernier message: 17/05/2010, 15h52
  3. Conversion fichier .csv en .xls
    Par Peachplume dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 05/03/2008, 09h27
  4. conversion d'un fichier csv en xls
    Par yandoka dans le forum Langage
    Réponses: 11
    Dernier message: 23/07/2007, 16h37
  5. [VBA-E] Conversion CSV en XLS
    Par crac_finance dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/03/2007, 10h18

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