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 les remarques (annotations) dans un tableau xls


Sujet :

API, COM et SDKs Delphi

  1. #1
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut Lire les remarques (annotations) dans un tableau xls
    Bonsoir,

    Je me suis lancé dans une nouvelle entreprise "hasardeuse" car cela fait déjà un moment que je n'ai plus touché à OpenOffice/Delphi.

    Je voudrais lire une feuille d'un tableau mais surtout certaines colonnes de celui-ci qui contiennent des remarques.
    Déjà que depuis tout à l'heure je galère pour récupérer un entier d'une cellule (getvalue me fourni toujours la valeur formatée avec des zéros non significatifs)
    est-ce que, avant de me lancer dans la lecture des uno.quelquechoses, quelqu'un sait comment faire ?

    P.S. Un coup de main sur la valeur entière ne sera pas de refus non plus un n:=StrToInt(worksheet.getCellByPosition(0, i).GetString);fonctionne mais je pensais que n:=worksheet.getCellByPosition(0, i).GetValue l'aurait fait. Pourtant j'ai toujours 0
    du coup j'ai un doute, je dois aussi lire le résultat d'une formule

    je n'ai plus les yeux en face des trous
    P.P.S RIO, programme VCL
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  2. #2
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 844
    Points : 11 274
    Points
    11 274
    Billets dans le blog
    6
    Par défaut
    Bonsoir Serge,

    Ça ne va pas t'aider, mais l'unité FPSpreadsheet de FreePascal est puissante... Mais je crains qu'elle ne soit pas Delphi compatible.
    Delphi 5 Pro - Delphi 10.4 Rio Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonsoir,

    je suis prêt à tout envisager, même de coder en Lazarus ce truc qui va ne servir qu'une fois ou presque .

    Cela dit, entre temps j'ai plus ou moins trouvé. En utilisant un tableau basique pour mes essais et après une longue apnée dans les doc et FAQ de Libre Office
    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
    procedure TMainForm.btnGoClick(Sender: TObject);
    var i,c,n : Integer;
        cellule,contenu : variant;
        AnnotServ,cellAdress : Variant;
        s : String;
        f : Integer;
        function DerniereLignede(MaFeuille : Variant) : Integer;
        var unCurSeur : variant;
        begin
        unCurseur:=maFeuille.CreateCursor;
        unCurseur.gotoEndOfUsedArea(False);
        result:=unCurseur.RangeAddress.EndRow;
        end;
    
    begin
    Memo2.Clear;
    worksheet:=Document.GetSheets.GetByName(edtFeuille.text);
    if VarIsEmpty(worksheet) or VarIsNull(WorkSheet)
           then  Memo1.Lines.Add(format('Feuille %s inconnue',[edtFeuille.text]))
           else  Memo1.Lines.Add(format('Traitement de %s',[edtFeuille.text]));
    for I := 0 to DerniereLigneDe(WorkSheet) do
     begin
       S:=worksheet.getCellByPosition(0, i).GetValue;
       for c:=0 to 1 do
        begin
          Cellule:=worksheet.getCellByPosition(c, i);
          S:=S+'|'+Cellule.Annotation.GetString;
        end;
       memo2.Lines.Insert(0,S);
    end;
    
    end;
    reste à voir si le tableau que je dois traiter ne va pas me faire des surprises (déjà le getvalue sur ce qui me semblait un nombre était limite !)

    Je songe également à ce que pourrait me proposer TMS et AdvGrid
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Bonjour,

    Pour les annotations, worksheet.getCellByPosition(colonne, ligne).Annotation.GetString à bien résolu ma demande.
    Pour le reste :
    je galère pour récupérer un entier d'une cellule
    eh bien, dans le tableau il y avait une cellule qui était alphanumérique !
    du coup j'ai un doute, je dois aussi lire le résultat d'une formule
    plus de doute, GetString -> le résultat, GetFormula -> la formule

    du coup je ne me sers presque pas de ce GetValue qui me fait tant de misère

    Je songe également à ce que pourrait me proposer TMS et AdvStringGrid
    Je n'ai rien vu concernant les annotations, dommage. je vais peut-être posé la question à TMS juste par curiosité


    Moralité :
    L'utilisation à plusieurs mains des tableaux, je n'ai jamais été fan (c'est bien pour cela que je récupère ce dernier pour mettre tout dans une BDD)
    Quand plusieurs utilisateurs s'y mettent ne jamais croire qu'ils vont respecter les directives mises en place plusieurs remplacements plus tard ... j'ai eu de nombreuses surprises dans le traitement
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  5. #5
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 409
    Points : 5 799
    Points
    5 799
    Par défaut
    salut

    tu as aussi la commande ".Comment.Text" qui devrais fonctionner
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  6. #6
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 021
    Points : 40 935
    Points
    40 935
    Billets dans le blog
    62
    Par défaut
    Méthode 'Comment' non supportée par l'objet Automation
    maintenant, c'est sur la cellule ou sur la feuille ?
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  7. #7
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 409
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 409
    Points : 5 799
    Points
    5 799
    Par défaut
    salut

    la cellule le commentaire c'est le petit onglet rouge que tu peut apercevoir sue une cellule
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

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

Discussions similaires

  1. Lire un fichier de données et les mettre dans un tableau
    Par giovanni dans le forum Entrée/Sortie
    Réponses: 19
    Dernier message: 18/02/2014, 15h50
  2. [Débutant] Lire les commentaires dans un classeur xls fermé!
    Par CoolDevelop dans le forum VB.NET
    Réponses: 1
    Dernier message: 17/07/2012, 09h11
  3. Réponses: 6
    Dernier message: 02/12/2010, 23h04
  4. Lire un fichier binaire et ranger les données dans un tableau
    Par Flaherty Mc Coillean dans le forum Débuter
    Réponses: 1
    Dernier message: 31/05/2009, 18h45
  5. Réponses: 12
    Dernier message: 18/06/2006, 20h42

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