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 :
Exemple : MetValeurDansCellule('Essai valeur', 'B4', 'Essai');
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;
Dans la cellule B4 est insèrée le texte "Essai". La feuille se nommera "Essai valeur'.
Merci d'avance.
Partager