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

Lazarus Pascal Discussion :

Lire une file *.xls


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Mars 2002
    Messages : 230
    Par défaut Lire une file *.xls
    Bonjour,

    Je veux lire une file au format *.xls.
    Je dois pouvoir accéder aux champs afin d'en copier leurs valeurs ailleurs.
    J'ai trouvé des articles sur FPSpreadsheet, mais je n'arrive pas á trouver le package en lui même.
    J'ai cherché dans mon C:\lazarus et en faisant Package -> Configure installed Package sans succés!

    Est ce que vous pouvez me dire oú je peux le trouver ?
    Y a t'il décrit comment l'installer ?
    Oú puis je lire comment installer un package ?

    Merci
    Sincérement
    Jean-Christophe

  2. #2
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juillet 2008
    Messages
    389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juillet 2008
    Messages : 389
    Par défaut
    Bonjour Jean Christophe,
    Peux-tu préciser si ton fichier est un vrai fichier excel ou simplement un fichier texte téléchargé sur un site banquaire, car dans ce cas je sais le faire et je pourrais te faire parvenir une unité lazarus que j'appelle import.
    Pour l'autre le vrai *.xls je ne sais pas.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Mars 2002
    Messages : 230
    Par défaut
    Désolé, mais c'est un fichier Microsoft que je dois ouvrir ....

    Merci
    Sincérement
    Jean Christophe

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 598
    Billets dans le blog
    65
    Par défaut
    Ne peut-on point utiliser OLE ? (unité ComObj) comme pour Delphi
    bien sur il faut aussi dans ces cas là avoir Excel ou OpenOffice d'installer sur le poste

  5. #5
    Membre confirmé
    Inscrit en
    Mars 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Mars 2002
    Messages : 230
    Par défaut
    Je n'ai pas vu de composants OLE
    As tu un link oú il est expliqué comment le traiter? (création, properties .....)
    Pour un newbie!

    Merci
    Sincérement
    Jean Christophe

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2002
    Messages
    230
    Détails du profil
    Informations personnelles :
    Âge : 62

    Informations forums :
    Inscription : Mars 2002
    Messages : 230
    Par défaut
    Je viens de trouver ce poste:
    http://www.mail-archive.com/lazarus@.../msg05651.html

    Est ce que quelqu'un peux me dire si je peux utiliser les files de sa page personnelle?
    Son lien ne me renvoie nul part.

    Merci
    Jean-Chistophe

  7. #7
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 598
    Billets dans le blog
    65
    Par défaut
    Citation Envoyé par jean christophe Voir le message
    Je n'ai pas vu de composants OLE
    As tu un link oú il est expliqué comment le traiter? (création, properties .....)

    Non , bien sur il n'y a pas de composants il "suffit" d'utiliser l'unité ComObj
    (j'ai preféré faire un essai avant de répondre)

    quand aux liens , et bien, fais un tour du coté de la FAQ Delphi utilisation d'OpenOffice dans mon cas

    Code exemple de connection a OpenOffice : 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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    unit Unit1; 
     
    {$mode objfpc}{$H+}
     
    interface
     
    uses
      Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
      StdCtrls, Variants, ComObj;
     
    type
     
      { TForm1 }
     
      TForm1 = class(TForm)
        Button1: TButton;
        procedure Button1Click(Sender: TObject);
      private
        { private declarations }
      public
        { public declarations }
      end; 
     
    var
      Form1: TForm1; 
     
    implementation
     
    { TForm1 }
     
    procedure TForm1.Button1Click(Sender: TObject);
    var OpenOffice, Bureau, Document : Variant;
        properties,CoreServ,prop : Variant;
        vSheet,vCell : Variant;
        n : Integer;
        OO_FileName : WideString;
     
        function FileToURL(F : String) : String;
        var i : Word;
            R : String;
        begin
         R:='file:///'+F;
         // transforme le nom du fichier en adresse URL
         while (Pos('\',R)>0) do    {les \ en /}
         begin
           i:=Pos('\',R);
           Delete(R,i,1);
           Insert('/',R,i);
         end;
         while (Pos(' ',R)>0) do    {les espaces en %20}
           begin
             i:=Pos(' ',R);
             Delete(R,i,1);
             Insert('%20',R,i);
           end;
         result:=R;
        end;
     
    begin
    if (VarIsEmpty(OpenOffice) or VarIsNull(OpenOffice)) then
       OpenOffice:=CreateOleObject('com.sun.star.ServiceManager');
    if not(VarIsEmpty(OpenOffice) or VarIsNull(OpenOffice)) then
     begin
       if (VarIsEmpty(Bureau) or VarIsNull(Bureau)) then
              Bureau:= OpenOffice.CreateInstance('com.sun.star.frame.Desktop');
     end;
    if (VarIsEmpty(Bureau) or VarIsNull(Bureau)) then
     begin
       MessageDlg('Le service Open Office n''est pas ouvert',mtError,[mbOk],0);
       Exit;
     end;
    properties:=VarArrayCreate([0,0],varVariant);
    CoreServ:= OpenOffice.CreateInstance('com.sun.star.reflection.CoreReflection');
    CoreServ.forName('com.sun.star.beans.PropertyValue').CreateObject(prop);
    prop.name:='Hidden';
    prop.Value:=True;
    properties[0]:=prop;
    if FileExists('C:\MESSAROUND\test.ods')
       then
    OO_FileName:=FileToURL('C:\MESSAROUND\test.ods')
       else
    OO_FileName:='private:factory/scalc';
     
    Document := Bureau.LoadComponentFromURL(OO_filename,
                                              '_blank',
                                               0,
                                              properties);
    if (VarIsEmpty(Document) or VarIsNull(Document)) then
     begin
       MessageDlg('Le fichier n''est pas ouvert',mtError,[mbOk],0);
       Exit;
     end;
    vSheet:=Document.getSheets.getByName('Feuille1');
    if (VarIsEmpty(vSheet) or VarIsNull(vSheet)) then
     begin
       MessageDlg('La Feuille n''est pas ouverte',mtError,[mbOk],0);
       Exit;
     end;
    OpenOffice:=unAssigned;
    end;
    non testé pour excel que je n'ai pas sur le poste
    Laz 0.9.27 fpc 2.2.5

Discussions similaires

  1. Réponses: 6
    Dernier message: 19/04/2013, 14h16
  2. Lire une seule feuille d'un fichier XLS avec XLSSpreadSheet
    Par Nono23 dans le forum Composants VCL
    Réponses: 0
    Dernier message: 24/03/2010, 11h28
  3. Lire une fichier XLS sans excel
    Par petitcoucou31 dans le forum API, COM et SDKs
    Réponses: 10
    Dernier message: 06/10/2008, 15h03
  4. lire une ligne d'un file descriptor
    Par Pitou5464 dans le forum Réseau
    Réponses: 4
    Dernier message: 30/10/2006, 16h13

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