Le 21/04/2011 15:21, Jean-Baptiste Faure a écrit :
> Bonjour,
> 
> Une doctorante de chez nous a 2800 fichiers xls dont elle a besoin
> d'extraire un certain onglet (elle en connait le nom) sous la forme d'un
> fichier csv.

Bonjour,

Merci pour vos réponses. Le problème est résolu et nous avons 2
approches pour le faire. C'est plus sûr. :-)

En réalité j'ai oublié un détail : le résultat final attendu suppose une
étape supplémentaire car il faut regrouper tous les fichiers csv
produits en un seul en les concaténant.
Autre détail qui n'est effectivement pas sans importance : notre
doctorante travaille sous Linux et n'a pas MS-Excel sur son poste de
travail.

- méthode 1 : utiliser xls2csv de façon à conserver proprement les
heures, utiliser un script shell à base de awk et sed pour séparer les
onglets et corriger les dates (toujours les mêmes dans un même onglet) à
partir du nom de fichier, concaténer les fichiers tout en procédant à un
petit nettoyage : shell avec cat et sed.

- methode 2 : utiliser batchconv modifié par Laurent Godard pour
extraire l'onglet voulu de tous les fichiers xls du répertoire.
Concaténer les fichiers csv obtenus comme avec la méthode 1.

La méthode 1 fonctionne presque parfaitement (des erreurs de nettoyage)
mais en 2 bonnes heures.

La partie batchconv de la méthode 2 fonctionne parfaitement. Je ne l'ai
pas encore testée sur les 2800 fichiers xls. Il me reste à bien
comprendre la macro que m'a fournie Laurent, à isoler le script de
concaténation et à faire un test en vrai grandeur.
Avant de l'appliquer à un autre stock de fichiers encore plus volumineux :-)

Je mettrai le code ici dés que je l'aurai compris. :-) Mais toutes les
infos nécessaires sont expliquées dans le bouquin de Laurent et Bernard
(Programmation OpenOffice.org et LibreOffice chez Eyrolles).

Cela pourrait peut-être donner une nouvelle version étendue de batchconv
avec cette option du choix de l'onglet à extraire lors de l'export en csv.

Bonne journée
JBF

-- 
Seuls des formats ouverts peuvent assurer la pérennité de vos documents.

-- 
Envoyez un mail à users+h...@fr.libreoffice.org pour savoir comment vous 
désinscrire
Les archives de la liste sont disponibles à 
http://listarchives.libreoffice.org/fr/users/
Tous les messages envoyés sur cette liste seront archivés publiquement et ne 
pourront pas être supprimés

Répondre à