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

Python Discussion :

Utiliser Open Office depuis Python


Sujet :

Python

  1. #1
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut Utiliser Open Office depuis Python
    Bonjour,
    je cherche des exemples d'appel, d'utilisation de Open Office depuis Python. A priori, une seule chose m'intéresserait : la création de feuilles de calcul simples.

    J'avais "zyeuter" en vain sur le net à la recherche d'exemples clairs et simples. En connaissez-vous ?

  2. #2
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    S'il s'agit d'échanger des données avec des tableurs, le format csv est facile (à quelques détails près comme les virgules décimales).

    S'il s'agit d'échanger des données et des macros, le seul format pratique me semble être le format sylk: http://dypso.free.fr/tech/generer_excel_format_sylk.php.

    Par exemple, dans openoffice, on fabrique:

    12
    23
    34
    =+SOMME(A1:A3)
    La macro donnant ici 69.

    Voilà le fichier de l'enregistrement sous format sylk:

    ID;PCALCOOO32
    C;X1;Y1;K12
    C;X1;Y2;K23
    C;X1;Y3;K34
    C;X1;Y4;K69;E+SUM(A1:A3)
    E
    On voit bien que la macro est transmise en plus du résultat (69), contrairement au format csv qui ne transmet pas la macro.

    L'ouverture du fichier sylk dans openoffice redonne bien le tableau initial.

    Donc, en creusant un peu le format, on devrait pouvoir fabriquer en Python un tableau complet destiné aux tableurs.

    Et ce serait bien qu'il existe un module "sylk" pour Python.

    Tyrtamos

    edit: voir aussi http://www.net6a.com/content/view/38/63/ et télécharger les fichiers qui décrivent le format sylk.

  3. #3
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Bonjour.

    Citation Envoyé par tyrtamos Voir le message
    S'il s'agit d'échanger des données et des macros, le seul format pratique me semble être le format sylk: http://dypso.free.fr/tech/generer_excel_format_sylk.php.
    Et ce serait bien qu'il existe un module "sylk" pour Python.
    Merci pour cette info. Je n'avais jamais entendu parler de ce format. Si tout se passe dans un fichier TXT, il ne devrait pas être trop pénible de créer un mini-outil en Python.

    Je vais regarder cela dès que je pourrais car là j'ai pas mal de boulot à abattre.

  4. #4
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Je viens d'essayer l'export via OOCalc et seule la 1ère feuille est prise en compte...

  5. #5
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour rambc,

    Eh, oui, ça ne marche que feuille par feuille...

    Sylk, c'est un vieux format qui nous vient du Multiplan des années 80.

    Désolé, je n'ai pas mieux.

    Tyrtamos

  6. #6
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Il y a théoriquement UNO de OOo mais les exemples sur le site ne marche pas avec moi. C'est un peu pénible...

  7. #7
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Oups, c'est de ma faute, je n'ai pas fait attention à cette ligne de commande pour Windaube :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      c:\Program Files\OpenOffice.org 2.4\program>  soffice "-accept=socket,host=localhost,port=2002;urp;"
    Sous Ubuntu, j'ai essayé avec succès :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ooffice "-accept=socket,host=localhost,port=2002;urp;"
    Au passage, les rédacteurs des exemples sur le site de Open Office devraient mettre ces lignes de commande en commentaire au début de tous les exemples pour débutant.

  8. #8
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Par défaut
    Salut,
    rambc, tu as testé lpod ?
    Je ne sais pas si ça permet d'intégrer des macros par contre.

  9. #9
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Bonjour,
    là c'est bien bien plus intéressant. Cela n'a pas l'air violent à utiliser : cf. ici par exemple.

    "J'm'en va" tester cela.

  10. #10
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Cela se complique... Il n'y a pas de version pour Windaube...

  11. #11
    Expert confirmé
    Homme Profil pro
    Big Data / Freelance EURL
    Inscrit en
    Mars 2003
    Messages
    2 124
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Big Data / Freelance EURL

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 124
    Par défaut
    J'ai fait un peu d'appel automation jython vers microsoft word.

    N'y a-t-il pas la même chose vers Open Office à partir de python ?

    A noter que les premières docs que j'ai trouvé sur le net étaient à propos des appels automation python vers Excel, donc c'est pour cela que si Open Office accepte l'automation cela devrait être possible, non ?

  12. #12
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Par défaut
    Citation Envoyé par rambc Voir le message
    Cela se complique... Il n'y a pas de version pour Windaube...
    Tu es sûr que lpod ne s'installe pas sous windows ?
    Suffit pas d'installer python et lxml, et lancer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    python setup.py install
    ?

    Je dis ça, j'ai pas windows sous la main pour vérifier, mais ça me parait bizarre (après tout, c'est du 100% python)

  13. #13
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Cela semble fonctionner mais pour le moment je ne sais pas comment définir le contenu d'une cellule, ce n'est pas trop clair dans la doc...

  14. #14
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Par défaut
    J'avoue je ne connais pas bien je sais juste que ça existe et que le but est d'être simple à utiliser.
    Je ne sais pas si ça correspond à ce dont tu as besoin.
    Je sais aussi que c'est encore jeune et pas forcément encore bien documenté ?

    Bref si la doc n'est pas claire et que tu as des interrogations, à ta place je n'hésiterais pas à aller leur faire un ptit coucou sur IRC (http://lpod-project.org/lpod-news/lp...2-is-released/, l'adresse du salon est sur la page).

    edit : set_cell_value() ?
    http://docs.lpod-project.org/cookboo...eet.html#cells

  15. #15
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Merci.

    En fait, je viens de faire ceci qui vient directement de la doc. :
    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
    # -*- coding: utf-8 -*-
     
    from lpod.document import odf_new_document_from_type
    from lpod.table import odf_create_table
     
    document = odf_new_document_from_type('spreadsheet')
    body = document.get_body()
     
    table = odf_create_table(u"5x5 Table", width=5, height=3)
    body.append_element(table)
     
    first_row = table.get_row(0)
    first_row.set_cell_values(range(5))
    table.set_row(0, first_row)
     
    document.save('spreadsheet.ods')
    Il reste à voir comment définir des formules si c'est faisable.

  16. #16
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 159
    Par défaut
    hello,
    J'ai vu ça.
    http://docs.lpod-project.org/autodoc...t_cell_formula

    edit: le cookbook n'est pas forcément complet, ne pas hésiter à lancer des recherches direct dans la doc de l'API.

  17. #17
    Membre éprouvé

    Profil pro
    Account Manager
    Inscrit en
    Décembre 2006
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Account Manager

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 301
    Par défaut
    Merci beaucoup, je testerais cela dans la semaine.

    Par contre, je confirme que sous Windows la bibliothèque ne fonctionne pas : j'ai essayé le code ci-dessus sans succès.

Discussions similaires

  1. Problème de pillotage OLE d'Open office depuis un OCX
    Par Bruiser dans le forum C++Builder
    Réponses: 2
    Dernier message: 18/02/2009, 10h04
  2. classe EXPORT en utilisant Open office
    Par tongo dans le forum Général Java
    Réponses: 1
    Dernier message: 02/06/2008, 11h53
  3. Utiliser des macros Excel sous open office
    Par Memes dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 08/11/2007, 21h46
  4. Utilisation Open Office Database
    Par M51-F dans le forum VB.NET
    Réponses: 1
    Dernier message: 14/05/2007, 22h04
  5. utilisation de open office
    Par shaftJackson dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 11/12/2006, 15h46

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