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

API, COM et SDKs Delphi Discussion :

Lire une fichier XLS sans excel [FAQ]


Sujet :

API, COM et SDKs Delphi

  1. #1
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut Lire une fichier XLS sans excel
    Bonjours a tous ,
    je voudrais savoir si il est possible de lire un fichier excel (composé d'une seule feuille ) et charger les cellules dans un Tstringgrid ?

    Je ne cherche pas a travailler avec exel depuis delphi , mais juste a charger le fichier exel .

    Toutes les infos que j'ai trouvé semble traiter cela avec des composants tel que 'Tapplicationexcel .. ' ou les 'OLE' .

    Mais je ne sais pas si je peux utiliser de telle methodes , car la machine qui va traiter ce fichier sera monoposte ( pas d'intranet .. ) possedera juste le fichier excel a traiter et ne possedera pas exel .

    Je suis prenneur de toutes les subjections ..

    merci d'avance
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  2. #2
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    J'utilise ça pour en créer un, si ça peut t'aider:

    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
     
    function SaveAsExcelFile(AGrid: TStringGrid; AFileName: string): Boolean;
    const
      {$J+} CXlsBof: array[0..5] of Word = ($809, 8, 00, $10, 0, 0); {$J-}
      CXlsEof: array[0..1] of Word = ($0A, 00);
    var
      FStream: TFileStream;
      I, J: Integer;
    begin
      FStream := TFileStream.Create(PChar(AFileName), fmCreate or fmOpenWrite);
      try
        CXlsBof[4] := 0;
        FStream.WriteBuffer(CXlsBof, SizeOf(CXlsBof));
        for i := 0 to AGrid.ColCount - 1 do
          for j := 0 to AGrid.RowCount - 1 do
            XlsWriteCellLabel(FStream, I, J, AGrid.cells[i, j]);
        FStream.WriteBuffer(CXlsEof, SizeOf(CXlsEof));
        Result := True;
      finally
        FStream.Free;
      end;
    end;
     
    procedure XlsWriteCellLabel(XlsStream: TStream; const ACol, ARow: Word;
      const AValue: string);
    var
      L: Word;
    const
      {$J+}
      CXlsLabel: array[0..5] of Word = ($204, 0, 0, 0, 0, 0);
      {$J-}
    begin
      L := Length(AValue);
      CXlsLabel[1] := 8 + L;
      CXlsLabel[2] := ARow;
      CXlsLabel[3] := ACol;
      CXlsLabel[5] := L;
      XlsStream.WriteBuffer(CXlsLabel, SizeOf(CXlsLabel));
      XlsStream.WriteBuffer(Pointer(AValue)^, L);
    end;
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  3. #3
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    bonjour,

    il y a les composants Flexcel qui font ça très bien, dans les deux sens et sans excel (ils existent même pour kylix).
    Tu peux les trouver aujourd'hui à cette adresse : www.tmssoftware.com

    @++
    dany

  4. #4
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut
    salut skywaukers , je suis allé chercher Flexcel , mais j'ai des prob d'install . J'ai desintallé tous les softs de chez "tms.." qui etait sur mon pc pour ne pas avoir de prob , et j'ai essayer d'installer la version de Flexcel pour delphi7 , mais il me dit qu'il me manque le fichier UExelAdapter.dcu , alors qu' il se trouve bien dans la directory Flexcel ??
    Donc je n'arrive pas a l'installer !

    Par contre toi qui semble utiliser déjà ces composants , si j'ai bien compris dans la config de l'installation on doit indiquer la version d'excel qu'on doit utiliser .
    Donc on ne peux lire les fichier que d'une version d'excel ? 97 ou 2000 ou Xp ou .. ? ou bien on peut lire les fichiers quelque soit leurs versions ?

    merci .
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  5. #5
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    La version que j'utilise est la dernière version téléchargeable lorsqu'ils étaient indépendant, je n'ai jamais télécharger la version de TMS à vrai dire.
    Par contre pour l'installation, le truc c'est qu'il faut ajouter tous les répertoires contenus dans le répertoire Flexcel au path avant de compiler, et là tout va bien.
    Je n'ai jamais indiqué de version d'excel, il m'a toujours ouvert mes tableaux, j'en génère aussi sans aucun soucis.
    Quand tu l'auras installé, tu pourras ouvrir leur démos qui est très complète, cela te donneras une idée de jusqû'où on peut aller avec.

    @++
    Dany

  6. #6
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut
    re salut , quand tu dis qu'il faut rajouter les nom des directory au path de delphi , c'est a dire ?
    dans Delphi => outil => option d'environnement => variable d'environnement ?
    si oui je connais pas la ou les variables que je dois renseigner !
    si c'est pas la ou est ce ?
    merci.
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  7. #7
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    tu vas :
    outils --> options d'environnement --> bibliothèques --> chemin de bibliothèque
    Et là tu ajoutes les répertoire (sauf packages et démo).

    voilà
    Dany

  8. #8
    Membre confirmé

    Inscrit en
    Novembre 2002
    Messages
    744
    Détails du profil
    Informations forums :
    Inscription : Novembre 2002
    Messages : 744
    Points : 500
    Points
    500
    Par défaut
    J'ai pas encore essayé , mais l'installation c'est bien passé !
    merci beaucoup a toi !!
    bye !
    Bye et bon code...

    Ce n'est pas tant l'aide de nos amis qui nous aide , mais notre confiance dans cette aide .

  9. #9
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Points : 17
    Points
    17
    Par défaut ...
    Linkin, ton code m'intéresse beaucoup mais je ne parviens pas à charger le fichier xls dans mon StringGrid

    Le but pour moi serait de faire un automate qui va convertir une série de fichiers xls en csv, et ce sans installer Excel sur la machine.

  10. #10
    Membre chevronné

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 288
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 288
    Points : 1 936
    Points
    1 936
    Par défaut
    ce code ne gère que la génération de fichiers excel 2 ou 4 je crois.

    Pour faire ça sans passer par Ole, je pense qu'il doit y avoir des composants qui le font, mais je n'en connais pas.
    Delphi 7/XE2/XE3
    C#
    Oracle 9i à 12c
    SQL Server 2008 à 2014

  11. #11
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2008
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2008
    Messages : 23
    Points : 17
    Points
    17
    Par défaut ...
    Ok, merci de l'info.

    J'ai voulu m'intéresser au composants Flexcel, malheureusement ils sont payants

    Je vais creuser vers OLE en espèrant qu'il y aura moyen d'installer Excel sur la machine concernée.

    Encore merci et à bientôt

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

Discussions similaires

  1. Ouvrir un fichier xls sans Microsoft Excel
    Par Spoot dans le forum Windows Forms
    Réponses: 1
    Dernier message: 21/12/2009, 21h14
  2. Ecrire un fichier XLS sans utiliser Excel
    Par Arsou dans le forum Contribuez
    Réponses: 5
    Dernier message: 01/12/2009, 22h26
  3. [E-03] Lire un fichier XML d'Excel sans Excel
    Par mioux dans le forum Excel
    Réponses: 2
    Dernier message: 02/01/2008, 13h35
  4. Manipulation de fichier .XLS sans Excel
    Par kergoussel dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 04/07/2007, 17h12
  5. Réponses: 2
    Dernier message: 15/05/2006, 08h46

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