Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

C++

Choisissez la catégorie, puis la rubrique :

logo
Sommaire > OpenOffice
        Qu'est ce qu'OpenOffice.org ?
        Comment se connecter/déconnecter à OpenOffice ?
        Qu'est ce que l'API de reflection (Core Reflection ) ?
12.1. Gestion des documents (3)
                Comment ouvrir Calc OleOpenOffice ?
                Comment fermer Calc OleOpenOffice ?
                Comment imprimer un document ?
12.2. Gestion des feuilles (28)
                Comment obtenir le nombre de feuilles du classeur OleOpenOffice ?
                Comment protéger une feuille OleOpenOffice ?
                Comment déprotéger une feuille OleOpenOffice ?
                Comment tester si une feuille est protegée OleOpenOffice ?
                Comment modifier la visibilité d'une feuille OleOpenOffice ?
                Comment accéder à une feuille par son index OleOpenOffice ?
                Comment accéder à une feuille par son nom OleOpenOffice ?
                Comment supprimer une feuille OleOpenOffice ?
                Comment dupliquer une feuille OleOpenOffice ?
                Comment déplacer une feuille OleOpenOffice ?
                Comment ajouter une nouvelle feuille OleOpenOffice ?
                Comment obtenir le nom d'une feuille du classeur OleOpenOffice ?
                Comment renommer une feuille Ole OpenOffice ?
                Comment connaître le type de la Cellule OleOpenOffice ?
                Comment copier une plage de cellules OleOpenOffice ?
                Comment déplacer une plage de cellules OleOpenOffice ?
                Comment fusionner des cellules OleOpenOffice ?
                Comment supprimer des cellules lignes colonnes d'une feuille OleOpenOffice ?
                Comment insérer des cellules, des lignes, des colonnes dans une feuille OleOpenOffice ?
                Comment définir une plage de cellules OleOpenOffice ?
                Comment récupérer la valeur d'une cellule de OLeOpenOffice ?
                Comment modifier la propriété arrière-plan des cellules OleOpenOffice ?
                Comment modifier les propriétés protection des cellules OleOpenOffice ?
                Comment accéder à une cellule et modifier sa valeur OleOpenOffice ?
                Comment affecter une formule à une cellule OleOpenOffice ?
                Comment remplir une cellule avec du texte OleOpenOffice ?
                Comment ajouter un hyperlien dans une cellule OleOpenOffice ?
                Comment modifier les propriétés police des cellules OleOpenOffice ?



Qu'est ce qu'OpenOffice.org ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, Atlantis

1/ Qu'est ce qu'OpenOffice.org ?

OpenOffice.org est une suite bureautique open source entièrement francisée et multi plateforme, qui contient :
- un traitement de textes, avec un éditeur d'équations (Writer)
- un tableur (Calc)
- un logiciel de présentation (Impress)
- un éditeur de dessin vectoriel (Draw)
Pour plus d'information : http://wiki.services.openoffice.org/...office.org/FAQ

2/ Quel avenir pour OpenOffice.org ?

OpenOffice.org suit un cycle de développement de 18 mois pour chaque nouvelle version. Actuellement la version 2.2 est disponible.

3/ Où télécharger OpenOffice.org ?

http://fr.openoffice.org/about-downloads.html

4/ Format des fichiers OpenOffice.org

Un des atouts de cette suite bureautique est son format de fichier qui repose sur XML. Un fichier OpenOffice.org a le même modèle pour toutes les applications bureautiques, seule l'extension change. C'est un fichier au format zip qui contient les fichiers XML suivant :
- le fichier XML content.xml pour le contenu du document
- le fichier XML styles.xml pour le style (style et contenu sont présentés de façon séparée)
- le fichier XML meta.xml qui regroupe des informations sur le document, que vous pouvez saisir sous Fichier | Propriétés. A noter que lorsque vous enregistrez un document avec chiffrement, seul meta.xml n'est pas chiffré.
- le fichier XML settings.xml contient les choix applicatifs sur les paramètres du document, par exemple sur l'imprimante, l'historique des modifications, la source de données connectée, etc. Le fichier meta-inf/manifest.xml décrit la structure du fichier XML
- le répertoire Pictures conservant les fichiers binaires (images...)
- le répertoire Basic contient les macros écrites en Basic-code. Les - bibliothèques Basic liées se trouvent dans d'autres sous-répertoires de Basic.
Tout ceci est, conservé dans un seul fichier zip, dont l'extension est propre à la nature du document (.sxw pour les textes, ou .sxc pour les classeurs). Le résultat est un format complexe comportant plus de 450 éléments et plus de 1600 attributs facile à lire et surtout facile à transformer

Extensions des fichiers OpenOffice utilisés
Texte (formaté) odt créé par Writer
Classeur ods créé par Calc
Présentation odp créée par Impress
Dessin créé par Draw
Base de données odb créée par Base
Formule odf créée par Math
Document maitre odm créé par Writer
Modèle de document txt ott créé par Writer
Modèle de classeur ots créé par Calc
Modèle de présentation otp créé par Impress
Modèle de dessin otg créé par Draw
Modèle de document HTML oth créé par Writer/Web

5/ Je remercie TABZ qui m'a aidé pour des problèmes avec "CoreReflection"

Je cite:
(La fonction "Bridge_GetStruct" permet de créer facilement des propriétés, alors que le passage par CoreReflection est souvent problématique avec BCB.)
Les fonctions avec "CoreReflection" peuvent être remplacées par "Bridge_GetStruct"
En principe c'est sans problème, mais cela n'est valable que pour les versions d'Open Office supérieures à la 1.1.0 (J'ajouterai que rien de tout cela ne fonctionne avec BCB3 pro, sans que je ne sache pourquoi.)

6/ Les tests ont été faits avec Windows XP PRO Pack2 et OpenOffice 2.2 (dernière version à ce jour)

7/ un lien sur le site vers des exemples et explications en OOobasic
http://silkyroad.developpez.com/
8/ un lien vers la FAQ Delphi qui a servie de support
http://delphi.developpez.com/faq/?page=openoffice


Comment se connecter/déconnecter à OpenOffice ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, Atlantis

Pour utiliser OpenOffice avec BCB vous devez utiliser OLE.
1/ Se connecter à OpenOffice

Déclarer les variables globales openOffice et Document et ajouter #include <ComObj.hpp>

Variant vOOoOpenOffice;
Variant vOOoDocument;
if (VarIsEmpty(vOOoOpenOffice))
{
vOOoOpenOffice = CreateOleObject("com.sun.star.ServiceManager");
}

2/ Se déconnecter d'OpenOffice.org
Positionner OpenOffice à Unassigned permet de libérer le Variant.

OpenOffice = Unassigned;

3/ Savoir si on est connecté à OpenOffice

boolean vOOoConnect;
vOOoConnect = ! (VarIsEmpty(vOOoOpenOffice) || VarIsNull(vOOoOpenOffice));

Qu'est ce que l'API de reflection (Core Reflection ) ?
Créé le 10/12/2007[haut]
auteurs : blondelle, pottiez, TABZ, Atlantis

Ou comment créer une instance d'une classe dont on connaît le nom.
C'est un objet qui permet de travailler sur les attributs, méthodes et constructeurs de classes "chargées". Elle permet par exemple de construire "dynamiquement" un nouvel objet (ou même tableau) ou encore d'accéder à ses attributs et méthodes.
Par exemple pour créer un objet à partir du nom d'une classe et transmettre des arguments à son constructeur :

Je remercie TABZ qui m'a aidé pour des problèmes avec "CoreReflection"
Je cite:
(La fonction "Bridge_GetStruct" permet de créer facilement des propriétés, alors que le passage par CoreReflection est souvent problématique avec BCB.)
Les fonctions avec "CoreReflection" peuvent être remplacées par "Bridge_GetStruct"


Cette fonction ouvre un document en lecture seule

Variant vOOoOpenOffice, vOOoDesktop, vOOoLoadParams, vOOoDocument, vOOoPropertyValue;
try
{
vOOoOpenOffice = CreateOleObject("com.sun.star.ServiceManager");
}
catch (...)
{
// si on passe ici c'est qu'il y a une erreur
}
if (VarType(vOOoOpenOffice) == varDispatch)
vOOoDesktop = vOOoOpenOffice.OleFunction("createInstance", "com.sun.star.frame.Desktop");
int Bounds[2] = {0,0};
vOOoLoadParams = VarArrayCreate(Bounds, 1, varVariant);
vOOoPropertyValue = vOOoOpenOffice.OleFunction("Bridge_GetStruct", "com.sun.star.beans.PropertyValue");
vOOoPropertyValue.OlePropertySet("Name", "ReadOnly"); // pour ReadOnly ou pour Hidden
vOOoPropertyValue.OlePropertySet("Value", true);
vOOoLoadParams.PutElement(vOOoPropertyValue, 0);
//ouverture fichier existant
// FilePath = "file://localhost/C:/essai.sxc" -- pour un fichier Calc
//ou
// FilePath = "file:///C:/essai.sxc" -- pour un fichier Calc
AnsiString FileName = "file:///C:/";
// FileName += ExtractFilePath(Application->ExeName);
FileName += "essai.sxc";
FileName = StringReplace(FileName,"<A href="file://\\","/",TReplaceFlags">\\","/",TReplaceFlags()<< rfReplaceAll << rfIgnoreCase);
Variant vFileName = StringToOleStr(FileName);
vOOoDocument = vOOoDesktop.OleFunction("LoadComponentFromURL",vFileName,"_blank",0,vOOoLoadParams); 


Consultez les autres F.A.Q.


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Contacter le responsable de la rubrique C++

Partenaire : Hébergement Web