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 :

Excel: format cellule


Sujet :

API, COM et SDKs Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Par défaut Excel: format cellule
    Bonjour,

    Je veux récupérer la valeur d'une cellule ou affecter une valeur à une cellule selon le type de la valeur (string, date, integer, formule).
    Je suis un peu perdu avec les différentes propriétés (j'utilise Excel2000):
    Text, wrapText et NumberFormat.
    C'est pour éviter de faire des cast comme DateToStr, IntToStr.

    J'aimerais obtenir ceci:

    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
    function GetCellule(CellName:String)
    [...]
    case CellType of
        ctString:Result:=Worksheet.Range[CellName,EmptyParam].Text;
        ctNumber:Result:=Worksheet.Range[CellName,EmptyParam].AAAA;
        ctEmpty:Result:=Null;
        ctFormula:Result:=Worksheet.Range[CellName,EmptyParam].Formula;
        ctDateTime:
        begin
            Worksheet.Range[CellName,EmptyParam].NumberFormat:='jj/mm/aa';
            Result:=Worksheet.Range[CellName,EmptyParam].Value;
        end;
    end;
    function SetCellule(CellName:String,aValue:_Variant)
    [...]
    //todo voir le type de aValue et mettre ce format dans la cellule et affecté la valeur
    case aValue of
        ctString:Result:=Worksheet.Range[CellName,EmptyParam].Text;
        ctNumber:Result:=Worksheet.Range[CellName,EmptyParam].AAAA;
        ctEmpty:Result:=Null;
        ctFormula:Result:=Worksheet.Range[CellName,EmptyParam].Formula;
        ctDateTime:
        begin
            Worksheet.Range[CellName,EmptyParam].NumberFormat:='jj/mm/aa';
            Result:=Worksheet.Range[CellName,EmptyParam].Value;
        end;
    end;
    Comment je peux faire ceci?
    Merci

  2. #2
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    J'ai fait pas mal d'applications qui utilisent Ms-Excel, et suis prçet à essayer de t'aider mais je ne comprends pas la question.
    Quand tu dis
    J'aimerais obtenir ceci:
    , tu l'as, alors, où est le problème ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Par défaut
    Je crois que je me suis compliqué la tâche car j'ai remarqué que sous Excel la valeur retourne déjà le bon type ce qui n'était pas le cas pour Open Office (Cell.AsNumber, Cell.AsDate,...).
    D'où mes questions pour mes fonctions qui ne sont plus utiles vu que si je veux mettre ou récuperer une valeur dans une cellule, je n'ai pas à me préoccuper du type de la valeur.

    En fait, on peut définir le format d'une cellule (Nombre, Date, Texte, Monétaire,...). Par défaut, il y a le format Standard qui correspond à aucun format spécifique.

    Mes questions seraient:
    - Comment peut-on mettre/changer le type de format d'une cellule?
    - A quoi servent les différentes propriétés: Text, wrapText, NumberFormat,...? Si c'est bien elles qui sont liées au type de format de la cellule.

  4. #4
    Membre éprouvé Avatar de defluc
    Homme Profil pro
    Architecte
    Inscrit en
    Mai 2002
    Messages
    1 383
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 383
    Par défaut
    "Text" force la capture du contenu de la cellule en caractères
    "Wordrap" force le renvoi à la ligne si le texte de la cellule est + long que sa largeur
    "NumberFormat" permet d'encoder une chaine de format imposant l'affichage des séparateurs de milliers et de décimales ainsi que le nombre de caractères décimaux

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Août 2010
    Messages
    31
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 31
    Par défaut
    Merci pour tes réponses, ca devrait suffir pour ce que je vais faire.

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

Discussions similaires

  1. [Excel] MySQL vers Excel: format cellules sans PHPExcel
    Par wongounay dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 23/06/2013, 15h09
  2. [VBA-EXCEL] format de date lors d'écriture dans une cellule
    Par ustilago dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/02/2007, 17h44
  3. [excel] format de cellule
    Par alpachico dans le forum Excel
    Réponses: 5
    Dernier message: 28/07/2005, 10h09
  4. [Delphi 2005] Format cellules Excel
    Par Vulcanos dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 24/05/2005, 22h21
  5. [VBA] Access-> Excel Format de cellule
    Par toflofr dans le forum VBA Access
    Réponses: 19
    Dernier message: 31/07/2003, 14h26

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