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 :

Utilisation de TsWorksheetGrid de l'unit fpspreadsheetgrid [Lazarus]


Sujet :

Lazarus Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Utilisation de TsWorksheetGrid de l'unit fpspreadsheetgrid
    Bonjour,
    je charge dans une TsWorksheetGrid un fichier xlsx puis je le sauve immédiatement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    with sgXLS do
      begin
         srcFileName := IncludeTrailingPathDelimiter(xlsDirName) +  xlsFileName
         LoadFromSpreadsheetFile(srcFileName);
         Col := 1;
         TopRow := 1;
         dstFileName := IncludeTrailingPathDelimiter(xlsDirName) + 'Result-' + FormatDateTime('yyyymmsshhnnss', now) + '.xlsx';
         SaveToSpreadsheetFile(dstFileName, True);
      end;
    Les formules contenues dans srcFileName ont disparu dans dstFileName.
    Nom : lazarus-231209.png
Affichages : 150
Taille : 21,3 Ko
    Je ne comprends pas bien le problème. La documentation concernant ce sujet n'est pas explicite si on utilise directement une TsWorksheetGrid. [Test réalisé avec Lazarus 2.2.6 sous Windows 11]
    Merci de votre aide. Cordialement. Gilles
    Dernière modification par Alcatîz ; 10/12/2023 à 10h03.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Rebonjour,

    problème résolu, enfin si on peut dire. Une formule du fichier Excel d'origine fait appel à un autre fichier XLS (disponible dans le répertoire de srcFileName). Une fois cette formule supprimée, le problème n'apparaît plus. Le sujet est à creuser mais comme cette formule "extérieure" n'est pas utile dans le cadre de mon application Lazarus, mon projet est fonctionnel. Il est quand même dommage que rien ne signale ce problème lors du chargement du fichier dans la TsWorksheetGrid (Exception ?).

    Mais nouveau problème : la feuille (ici visualisée sous LibreOffice) est définie en mode 'Calculer automatiquement' :
    Nom : lazarus-231209-02.png
Affichages : 124
Taille : 42,7 Ko

    Une fois les données modifiées dans la TsWorksheetGrid et le fichier enregistré, même si les formules sont désormais présentes dans le fichier XLS généré et le 'Calculer automatiquement' toujours sélectionné, la feuille n'a pas été recalculée. Actuelle solution de contournement : Une fois le fichier XLS généré par la TsWorksheetGrid, il suffit de réouvrir ce dernier avec LibreOffice et d'utiliser un Ctrl+Maj+F9 (Recalculer sans Condition) pour que tous les calculs de la feuille soient réactualisés... J'aimerais bien le faire directement avant d'enregistrer la TsWorksheetGrid. Il existe peut-être une méthode ou une propriété...

    Cordialement. Gilles
    Dernière modification par Invité ; 09/12/2023 à 12h25.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Finalement résolu... par une propriété disponible de la TsWorksheetGrid :
    Nom : lazarus-231209-03.png
Affichages : 131
Taille : 30,0 Ko
    A ne valider par programmation que juste avant l'enregistrement dans mon cas sinon à chaque modification dans la TsWorksheetGrid (remplissage de nombreux champs en l’occurrence), le programme re-calcule tous les champs comprenant une formule... entrainant une latence importante.
    Bonne fin de WE. Cordialement. Gilles
    Dernière modification par Invité ; 09/12/2023 à 16h44.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 04/07/2008, 17h37
  2. [ADO] utilisation de l'unité adodb sous delphi 2005 PE
    Par dams580 dans le forum Bases de données
    Réponses: 8
    Dernier message: 17/02/2006, 09h40
  3. Réponses: 3
    Dernier message: 25/12/2005, 19h43
  4. [TPW] Comment utiliser l'unité crt ?
    Par usoft dans le forum Turbo Pascal
    Réponses: 6
    Dernier message: 18/02/2005, 19h35
  5. Utilisation d'une variable sur plusieurs unités
    Par Yamaneko dans le forum Langage
    Réponses: 2
    Dernier message: 05/06/2003, 11h23

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