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 :

Ole Excel et séparateur de décimal


Sujet :

Langage Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 45
    Points : 34
    Points
    34
    Par défaut Ole Excel et séparateur de décimal
    Bonjour à tous.

    Je développe actuellement en delphi une application d'aide à la décision. Les différents rapports de statistique sont générés sous Excel.

    Je rencontre alors 2 problèmes :
    - Premièrement je rencontre un problème au niveau de la gestion des dates. En effet dans Excel 2003 et 2007, la gestion des dates a changé et c'est maintenant au format FR que je dois envoyer mes dates dans Excel.
    J'ai un parametre qui permet d'indiquer si l'utilisateur utilise un excel 2003 ou plus.
    Je souhaiterai savoir si depuis Delphi, on a la possibilité de récupérer le format de date attendu par la version d'Excel installée sur le poste client? A savoir si c'est une date US ou une date FR.

    - Ensuite je suis un peu à la recherche d'idée pour gérer au mieux les séparateurs de décimal :
    Actuellement, je tente de récupérer le séparateur décimal défini dans Excel à l'aide de AppliExcel.DecimalSeparator. Si je ne trouve pas de séparateur décimal, je prend alors le séparateur décimal du système. Par contre, dans les options de excel 2007, j'ai pus voir qu'il était possible de récupérer par défaut le séparateur système. Comment puis-je savoir de delphi si ce paramètre dans Excel est coché?

    Ou alors, vaut-il mieux qu'au moment ou je créé mon document Excel, je force moi-même le séparateur décimal?

    Merci pour vos réponse

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 45
    Points : 34
    Points
    34
    Par défaut
    J'ai trouvé une solution à la gestion des séparateurs de décimal.
    En effet, depuis delphi, il est possible de savoir si Excel utilise le séparateur système avec la fonction .UseSystemSeparators .

    Il convient donc de tester cette valeur et en fonction de récupérer le séparateur du système ou le séparateur définit dans Excel. Cela fonctionne a coup sur pour Excel 2003 et 2007.
    Pour Excel 97 et 2000, je pense qu'une instruction Try Excep s'impose pour récupérer la valeur système.

    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
     
    try
        try
          Excel := CreateOLEObject('Excel.Application');
          FormatExcelDecimal := '########0'+Excel.DecimalSeparator+'00';
          if not Excel .UseSystemSeparators then
            FormatExcelDecimal := '########0'+Excel.DecimalSeparator+'00'
          else
          begin
            SeparateurDecimalSysteme := PChar(FloatToStr(1.1))[1];
            FormatExcelDecimal := '########0'+SeparateurDecimalSysteme+'00';
          end;
        except
          SeparateurDecimalSysteme := PChar(FloatToStr(1.1))[1];
         FormatExcelDecimal := '########0'+SeparateurDecimalSysteme+'00';
         end
        finally
          Excel := Unassigned;
        end;
    Par contre je suis toujours à l'écoute pour une solution concernant mon problème de date FR ou date US.

Discussions similaires

  1. [OLE Excel] Aller jusqu'à la dernière cellule rempli
    Par JBrek dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 07/08/2009, 19h21
  2. Petit prob avec l'OLE EXCELL sous builder
    Par vladi dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/03/2005, 19h30
  3. Manipulation d'un Objet OLE Excel ?
    Par NiKro75 dans le forum VBA Access
    Réponses: 10
    Dernier message: 05/07/2004, 17h43
  4. [OLE Excel] Récupérer une colonne d'un coup
    Par Nemerle dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/05/2004, 15h56
  5. [OLE Excel] Erreur
    Par JBrek dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 23/03/2003, 18h28

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