Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

extraction données openoffice calc

15 réponses
Avatar
Mihamina Rakotomandimby
Bonjour,
J'utilise openoffice 2.4, et je cherche un module ou un exemple de
script qui me permettrait d'extraire des données d'une feuille de calcul.
Le but est au final d'avoir un fichier SQL.
Il n'y a aucun "calcul" dans la feuille, ce sont juste des coordonées
postales qu'il faut insérer dans une base SQL.
Mes quelques recherches:
http://www.google.com/search?q=python+data+oocalc
http://www.google.com/search?q=python+extract+openoffice+spreadshee

Le mieux que j'ai pu entirer:
http://www.oooforum.org/forum/viewtopic.phtml?t=20830
Mais c'est tellement vieux...

Ai-je les mauvais mots clés?

10 réponses

1 2
Avatar
Bruno Desthuilliers
Mihamina Rakotomandimby a écrit :
Bonjour,
J'utilise openoffice 2.4, et je cherche un module ou un exemple de
script qui me permettrait d'extraire des données d'une feuille de calcul.
Le but est au final d'avoir un fichier SQL.
Il n'y a aucun "calcul" dans la feuille, ce sont juste des coordonées
postales qu'il faut insérer dans une base SQL.



Alors exporte ton fichier en .csv, et utilise le module éponyme de la
bibliothèque standard pour le lire et générer le SQL.
Avatar
Christophe
Mihamina Rakotomandimby a écrit :
Bonjour,
J'utilise openoffice 2.4, et je cherche un module ou un exemple de
script qui me permettrait d'extraire des données d'une feuille de calcul.
Le but est au final d'avoir un fichier SQL.
Il n'y a aucun "calcul" dans la feuille, ce sont juste des coordonées
postales qu'il faut insérer dans une base SQL.
Mes quelques recherches:
http://www.google.com/search?q=python+data+oocalc
http://www.google.com/search?q=python+extract+openoffice+spreadshee

Le mieux que j'ai pu entirer:
http://www.oooforum.org/forum/viewtopic.phtml?t 830
Mais c'est tellement vieux...

Ai-je les mauvais mots clés?



J'ai justement un petit projet à venir ou je dois plus ou moins faire la
même chose, même si le format de sortie est différent donc la solution
m'interesse aussi.
Avatar
William Dode
On 03-10-2008, Mihamina Rakotomandimby wrote:
Bonjour,
J'utilise openoffice 2.4, et je cherche un module ou un exemple de
script qui me permettrait d'extraire des données d'une feuille de calcul.



Tu peux "simplement" lire le document, c'est du xml zippé.

--
William Dodé - http://flibuste.net
Informaticien Indépendant
Avatar
Bruno Desthuilliers
Mihamina Rakotomandimby a écrit :
Bruno Desthuilliers wrote:
Alors exporte ton fichier en .csv



Je n'aime pas cette chose.
Bon... a defaut, il faut ce qu'il faut...



Il y a certainement moyen de passer par le binding python-openoffice. Je
me contentais de te soumettre une solution simple.
Avatar
Pierre Maurette
Mihamina Rakotomandimby, le 03/10/2008 a écrit :
Bonjour,
J'utilise openoffice 2.4, et je cherche un module ou un exemple de script qui
me permettrait d'extraire des données d'une feuille de calcul.
Le but est au final d'avoir un fichier SQL.
Il n'y a aucun "calcul" dans la feuille, ce sont juste des coordonées
postales qu'il faut insérer dans une base SQL.
Mes quelques recherches:
http://www.google.com/search?q=python+data+oocalc
http://www.google.com/search?q=python+extract+openoffice+spreadshee

Le mieux que j'ai pu entirer:
http://www.oooforum.org/forum/viewtopic.phtml?t 830
Mais c'est tellement vieux...

Ai-je les mauvais mots clés?



J'avais fait quelques macros en Python pour OOo Writer et à l'occasion
j'avais jeté un oeil sur les API OOo, UNO, PyUNO et tout ça. J'en avais
pleuré... Certainement très puissant, mais lourd. En plus la
documentation devait être "traduite en Python". Et enfin il est
possible - mais je n'en suis pa certain - que cette approche vous lie à
une installation d'OOo sur la machine de traitement, ce qui peut être
une contrainte.
Autant alors trifouiller directement dans les .ods. Une manip pour
préciser ce qu'écrit William: vous prenez votre .ods, vous le renommer
en .zip et vous regardez ce qu'il contient avec ce qui va bien sur
votre OS. Ou vous le passez directement au zipfile. Vous extrayez
ensuite contents.xlm et regardez son contenu. Vous verrez qu'extraire
vos données est certainement très simple. Personnellement je
regarderais du coté de BeautifulSoup parce que je suis dedans et que je
n'ai pas encore d'expérience en Python, mais il y certainemnt plus
simple dans la fourniture standard. En plus BeautifullSoup est assez
lent.


--
Pierre Maurette
Avatar
Pierre Maurette
Mihamina Rakotomandimby, le 03/10/2008 a écrit :
Bonjour,
J'utilise openoffice 2.4, et je cherche un module ou un exemple de script qui
me permettrait d'extraire des données d'une feuille de calcul.
Le but est au final d'avoir un fichier SQL.
Il n'y a aucun "calcul" dans la feuille, ce sont juste des coordonées
postales qu'il faut insérer dans une base SQL.



J'ai fait un test avec zipfile et BeautifullSoup, ça semble jouable.
Avec une simple feuille contenant 3 lignes de deux éléments, nom et
code par exemple:

#!/usr/bin/python
# -*- coding: utf-8 -*-

import zipfile
from BeautifulSoup import BeautifulStoneSoup

soup =
BeautifulStoneSoup(zipfile.ZipFile('test.ods').read('content.xml'))
#print soup.prettify()
#print soup.find('office:spreadsheet').prettify()
for _1 in soup.findAll('table:table', attrs={'table:name':True}):
print 'Feuille:', _1.attrs[0][1]
for _2 in _1.findAll('table:table-row'):
print '---------------row-------------------'
for cell in _2.findAll('table:table-cell'):
__ = cell.find('text:p')
if __:
print __.contents[0]

--
Pierre Maurette
Avatar
Méta-MCI \(MVP\)
Bonsoir !

J'ai une classe, pour manipuler OOo depuis Python.

Mais, tu vas pleurer tes choix d'OS, car ça utilise COM, et, donc, ne
fonctionne qu'avec la famille des OS Windows...

@-salutations
--
Michel Claveau
Avatar
William Dode
On 03-10-2008, Méta-MCI (MVP) wrote:
Bonsoir !

J'ai une classe, pour manipuler OOo depuis Python.

Mais, tu vas pleurer tes choix d'OS, car ça utilise COM, et, donc, ne
fonctionne qu'avec la famille des OS Windows...



ça dialogue avec OO ?

--
William Dodé - http://flibuste.net
Informaticien Indépendant
Avatar
Michel Claveau - NoSpam SVP ; merci
Re !

ça dialogue avec OO ?



Oui. C'est un peu l'équivalent de ma classe pour Word, mais en moins
complet / puissant, car les fonctionnalités COM de OOo sont plus
limitées et nettement plus complexes.

Mais, on peut piloter :
- l'ouverture et la fermeture d' OOo
- l'ouverture et la fermeture d'un document
- la sauvegarde d'un document
- rendre OOo visible ou invisible
- imprimer (impression par défaut)
- chercher une chaîne
- remplacer
- lire le contenu (traduit en texte brut)
- écrire du texte

et, c'est à peu près tout. Mais, ça me suffit pour pouvoir utiliser OOo,
chez des clients, comme générateur de documents, à partir de
documents-types, gérés par les utilisateurs, et avec des "remplacer" +
imprimer ou sauver sous.

Si ça intéresse quelqu'un, je peux la re-publier, mais "en l'état" (doc
quasi inexistante, commentaire minimas, peu d'exemples, ...)

@-salutations
--
Michel Claveau
Avatar
William Dode
On 04-10-2008, Michel Claveau - NoSpam SVP ; merci wrote:
Re !

ça dialogue avec OO ?



Oui. C'est un peu l'équivalent de ma classe pour Word, mais en moins
complet / puissant, car les fonctionnalités COM de OOo sont plus
limitées et nettement plus complexes.



Ca ouvre l'interface d'OO ?
Est-ce que ce n'est pas trop lent ?

En xml j'ai fait aussi du chercher/remplacer, l'avantage c'est que c'est
très rapide et que ça ne nécessite pas OO sur le serveur...
Par contre ce n'est pas extrêmement simple dans le sens où j'ai été
obligé de faire ça empiriquement en regardant le contenu d'un xml
existant. Mon petit doigt me dit que tu n'as pas trouvé non plus de doc
très claire ?

--
William Dodé - http://flibuste.net
Informaticien Indépendant
1 2