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 passage de MS Excel à OpenOffice


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 46
    Points : 50
    Points
    50
    Par défaut OLE passage de MS Excel à OpenOffice
    Bonjour à tous.
    Un autodidacte vient solliciter l'aide des spécialistes en informatique.
    Voilà, j'ai développé une petite application au boulot qui crée des documents sous MS Excel (Delphi 7).
    Mon application liste les produits à fabriquer dans la journée.
    Ensuite génère des documents sous MS Excel pour divers postes. Cette application marche très bien depuis 2004.
    On me demande maintenant de générer ces documents sous OpenOffice pour des raisons budgétaires (réductions des frais liés aux licences Microsoft). Je me suis basé sur le tuto. du site mais j'ai pas mal des difficultés à convertir toute la partie concernant Excel.
    Mon problème :
    1/- Comment centrer la valeur affichée dans une cellule ?. Je n'y arrive pas.
    2/- La propriété Visible n'existe dans l'utilisation d'OpenOffice comme dans MS Excel, que utilisez-vous pour n'afficher la page qu'une fois la mise en page faite ?
    Voici une des parties du code qui me cause des problèmes :

    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
    procedure MetValeurDansCellule(OleNomFeuille:string; OleMaCellule: variant; valeur : string);
    var UneFeuille, UneZone : variant;
    begin
        UneFeuille := DocumentOpenOffice.Sheets; {. Création de la feuille ..}
        OleMaFeuille := UneFeuille.getByName(OleNomFeuille);{. Nommer la feuille ..}
        UneZone := OleMaFeuille.getCellRangeByName(OleMaCellule);{. Cellue concernée de la feuille ..}
     
        //.. Insertion d'une valeur dans la cellule
        UneZone.SetString(WideString(Valeur));
        //.. Jusqu'ici tout va bien
     
        {//.. C'est ici que tout se bloque. Je veux centrer la valeur dans la cellule selon le Tuto. mais ....
       CoreReflection := OpenOffice.createInstance('com.sun.star.reflection.CoreReflection');  CoreReflection.forName('com.sun.star.table.CellHoriJustify').getField('CENTER').get();
        PropertyValue.Name := 'CENTER';
        PropertyValue.Value := 8;
        }
    end;
    Exemple : MetValeurDansCellule('Essai valeur', 'B4', 'Essai');

    Dans la cellule B4 est insèrée le texte "Essai". La feuille se nommera "Essai valeur'.
    Merci d'avance.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 46
    Points : 50
    Points
    50
    Par défaut OLE passage de MS Excel à OpenOffice
    Bonjour

    Je reviens car j'ai pu trouver une réponse à une des 2 questions que j'ai posées sur le forum. Si ca peut aider quelqu'un d'autre. Il s'agit du centrage d'un texte dans une cellule OpenOffice :

    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
     
    procedure MetValeurDansCellule(OleNomFeuille:string; OleMaCellule: variant; valeur : string);
    var UneFeuille, UneZone : variant;
    begin
        UneFeuille := DocumentOpenOffice.Sheets; {. Création de la feuille ..}
        OleMaFeuille := UneFeuille.getByName(OleNomFeuille);{. Nommer la feuille ..}
        UneZone := OleMaFeuille.getCellRangeByName(OleMaCellule);{. Cellue concernée de la feuille ..}
     
        //.. Insertion d'une valeur dans la cellule
        UneZone.SetString(WideString(Valeur));
        //.. Jusqu'ici tout va bien
     
     
       // Pour centrer le contenu de ma cellule voici le code à insérer.
       // Cette procédure peut bien sûr être améliorer
       UneZone.setPropertyValue('HoriJustify', CoreReflection.forName('com.sun.star.table.CellHoriJustify').getField('CENTER').get());
     
    end;

Discussions similaires

  1. Conversion Excel OpenOffice
    Par Lechette dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 03/04/2008, 14h04
  2. [OpenOffice][Tableur] VBA excel, Openoffice et boutons
    Par jpbianca dans le forum OpenOffice & LibreOffice
    Réponses: 7
    Dernier message: 24/12/2007, 12h26
  3. Réponses: 1
    Dernier message: 11/06/2007, 17h33
  4. Export d'un objet OLE vers un fichier Excel
    Par Acarp47 dans le forum Access
    Réponses: 4
    Dernier message: 09/01/2007, 17h21
  5. [MFC/OLE] Génération de graphique Excel
    Par TomTom95 dans le forum MFC
    Réponses: 13
    Dernier message: 06/06/2006, 15h33

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