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

Windows Forms Discussion :

[VB.Net] Automation Open Office


Sujet :

Windows Forms

  1. #1
    Membre régulier
    ingénieur informaticien
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations professionnelles :
    Activité : ingénieur informaticien

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut [VB.Net] Automation Open Office
    Bonjour!
    Est-il possible de faire de l'automation OOo à partir de VB.Net ?
    Si oui pouvez vous m'indiquer un document sur le sujet ? Merci!

  2. #2
    Membre régulier
    ingénieur informaticien
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations professionnelles :
    Activité : ingénieur informaticien

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Connaissez-vous un outils permettant de faire de l'automation Open Office ?

  3. #3
    Membre régulier
    ingénieur informaticien
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations professionnelles :
    Activité : ingénieur informaticien

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    J'ais trouvé un ensemble d'instruction permettant d'ouvrir un document office.
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
     
        'root object from OOo API
        Public oSM As Object        '---ServiceManager
        Public ODesk As Object     '---Desktop (Bureau)
        Public oDoc As Object       '---Document ouvert
     
        '*****************************************************************************************
        Public Sub ouvre_ObjetOOo()
            '*****************************************************************************************
            'Instanciate OOo : la première ligne est toujours exigée dans Visual Basic pour OOo
            oSM = CreateObject("com.sun.star.ServiceManager")
            ODesk = oSM.createInstance("com.sun.star.frame.Desktop")
        End Sub
     
        '*****************************************************************************************************
        Public Sub CommandOuvreDoc_Click()
            '*****************************************************************************************************
            Dim CheminOOo As String, FichierOOo As String
            CheminOOo = ""
            FichierOOo = "private:factory/swriter"
            ouvre_ObjetOOo()
            ouvre_Document(CheminOOo, FichierOOo, "")
        End Sub
     
        '*****************************************************************************************************
        Public Function ouvre_Document(ByVal CheminOOo As String, ByVal FichierOOo As String, ByVal MDPOOo As String) As Boolean
            '*****************************************************************************************************
            ' ouverture de document avec paramètres
            Dim OpenPar(2) As Object
            Dim FichierCompletOOo As String
            '----------------------------------------------------------------------------
            'Nous appelons la fonction de setOOoProp, pour accéder à la structure
            OpenPar(0) = setOOoProp("ReadOnly", False)
            OpenPar(1) = setOOoProp("Password", MDPOOo)
            OpenPar(2) = setOOoProp("Hidden", False)
            If CheminOOo = "" Then
                FichierCompletOOo = FichierOOo
            Else
                FichierCompletOOo = CheminOOo & "/" & FichierOOo
            End If
            'Maintenant nous pouvons appeler la méthode de loadComponentFromURL d'OOo,
            'en lui donnant comme quatrième argument le résultat de notre appel précédent de setOOoProp
            oDoc = ODesk.loadComponentFromURL(FichierCompletOOo, "_blank", 0, OpenPar)
        End Function
     
        '*****************************************************************************************
        Public Function setOOoProp(ByVal cName As String, ByVal uValue As Object) As Object
            '*****************************************************************************************
            'Quelques propriétés d'objet dans OOo api ont la structure de type.
            'Les structures sont l'équivalent du type défini pour l'utilisateur (UDT) dans visual basic.
            'En raison de l'exécution du pont d'UNO-Automation, il n'est pas possible de passer un UDT
            'comme argument de méthode.
            '(Cf http://api.openoffice.org/docs/DevelopersGuide/ProfUNO/ProfUNO.htm#1+4+4+5+3+Usage+of+Types).
            'dans visual basic, on doit employer une méthode particulière d'OOo api (Bridge_GetStruct):
            'il donne l'accès à une structure d'OOo dans visual basic.
            'Après ce, on peut donner le résultat de l'appel de Bridge_GetStruct comme argument dans un appel de méthode.
            'Vous pourriez par exemple employer une fonction d'aide comme ceci:
            Dim oPropertyValue As Object
            oPropertyValue = oSM.Bridge_GetStruct("com.sun.star.beans.PropertyValue")
            oPropertyValue.Name = cName
            oPropertyValue.Value = uValue
            setOOoProp = oPropertyValue
        End Function
    Il ne manque plus que celles permettant de le modifier.

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonjour

    Ce n'est pas du VB.Net, mais j'espère tu pourras adapter les exemples proposés dans ce lien:

    http://silkyroad.developpez.com/VBA/PiloterOpenOffice/


    bonne soirée
    michel

  5. #5
    Membre régulier
    ingénieur informaticien
    Inscrit en
    Novembre 2005
    Messages
    114
    Détails du profil
    Informations professionnelles :
    Activité : ingénieur informaticien

    Informations forums :
    Inscription : Novembre 2005
    Messages : 114
    Points : 103
    Points
    103
    Par défaut
    Merci beaucoup du tuyau. Je vè voir ce qu'il è possible de faire avec. Encore merci!

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

Discussions similaires

  1. [OpenOffice] Open office et ASP.NET
    Par cyrilc dans le forum OpenOffice & LibreOffice
    Réponses: 4
    Dernier message: 05/03/2009, 16h21
  2. [.net 2.0] Open office sur serveur Web
    Par cyrilc dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/02/2009, 15h36
  3. [VB.Net 2005]Libérer un document open office
    Par DonF dans le forum Windows Forms
    Réponses: 6
    Dernier message: 15/01/2007, 17h39
  4. [Tableur Open Office] Protection de cellule
    Par LDS45 dans le forum Autres langages
    Réponses: 1
    Dernier message: 06/06/2005, 17h14
  5. Pilotage Open Office
    Par LitteulKevin dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 15/09/2004, 14h03

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