[Résolu] Ouverture en mode cmd d'un fichier .csv

Discussions à propos du tableur Calc.
Les questions sur les macros doivent être postées dans la section dédiée en dessous.

Modérateur : Vilains modOOs

Règles du forum
Cette section est uniquement dédiée au tableur Calc. Vous ne devez pas poster ici de questions sur les macros mais utiliser la section éponyme.
mauricejl
Fraîchement OOthentifié
Messages : 2
Inscription : 19 mai 2017 12:53

[Résolu] Ouverture en mode cmd d'un fichier .csv

Message par mauricejl »

Bonjour,
J'utilise quotidiennement un fichier .csv que je dois ouvrir avec OO.
Le fichier doit s'ouvrir avec options de séparation "; " et ensuite je dois sélectionner toutes les colonnes et confirmer qu'elles sont de type "texte".

Puis-je ouvrir ce fichier avec une commande dos qui prend en compte toutes ces valeurs ?

Au plaisir de vous lire

Jean-Luc
open office 4 / windows 7
Avatar de l’utilisateur
Grenouille
ManitOOu
ManitOOu
Messages : 3223
Inscription : 13 janv. 2006 16:21
Localisation : Chasseneuil-du-Poitou / Futuroscope

Re: Ouverture en mode cmd d'un fichier .csv

Message par Grenouille »

Bonjour,

Il faut utiliser d'abord la recherche sur ce forum.
Question déjà abordée : https://forum.openoffice.org/fr/forum/v ... rture+*csv*

Bonne lecture
OpenOffice 4.1.5 et LibreOffice 5.3.4 (par obligation) sous Windows 7
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: Ouverture en mode cmd d'un fichier .csv

Message par Hubert Lambert »

Bonjour,

Tu peux le faire par l'intermédiaire d'une macro utilisant l'api UNO pour importer le fichier csv avec les paramètres adéquats.
Par exemple, la macro suivante importe un csv encodé en utf-8 avec le point-virgule comme séparateur et en convertissant les 10 premières colonnes en texte (pour la syntaxe des options, voir ici) :

Code : Tout sélectionner

sub open_csv(filepath)
    url = convertToURL(filepath)
    filteroptions = "59,34,76,1,1/2/2/2/3/2/4/2/5/2/6/2/7/2/8/2/9/2/10/2"
    dim props(1) as new com.sun.star.beans.PropertyValue
    props(0).Name = "FilterName"
    props(0).Value = "Text - txt - csv (StarCalc)"
    props(1).Name = "FilterOptions"
    props(1).Value = filteroptions
    StarDesktop.loadComponentFromURL(url, "_default", 0, props())
end sub
Ensuite, en admettant que cette macro soit sauvée dans un module "Module1" de la bibliothèque "Standard" du programme, elle peut être exécutée comme ceci depuis la ligne de commande :

Code : Tout sélectionner

soffice.exe -nologo "macro:///Standard.Module1.open_csv(C:\chemin\complet\vers\fichier.csv)"
Cordialement.
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)
mauricejl
Fraîchement OOthentifié
Messages : 2
Inscription : 19 mai 2017 12:53

Re: Ouverture en mode cmd d'un fichier .csv

Message par mauricejl »

Merci Hubert pour cette réponse hyper rapide.
Je me rends compte de mes lacunes ... en programmation.
En fait, j'utilise un fork d'OOO, Lotus Symphony.
Lotus Symphony 3
Edition 3.0.1 FP2
Révision 20121012.2300
Produit basé sur Open Office, compatible ODF

Quand j'ouvre le fichier testz (renomme le en .csv car je n'ai pas pu le mettre en .csv sur ce site) avec Symphony, je dois donc lui dire que c'est un ";" et mettre la colonne L en format texte, car par défaut, il me la change comme une date .... et je perds mes informations.
J'ai donc pris l'habitude de mettre toutes les colonnes en txt (ou la colonne L mais c'est plus long) et cela fonctionne mais ...... c'est répétitif.

Le but étant, si possible, de faire passer le testz.csv en cables.ods en une seule commande.

Finalement, j'ai trouvé une parade ..... étant donné que j'ai aussi OOO sur mon poste, je peux l'utiliser pour ouvrir testz.csv et là
Oh miracle :idea: , je n'ai plus qu'à cliquer sur OK car OOO met par défaut le ";" et garde le bon format de la colonne L.

Reste donc une petite commande DOS ..... miracle ...... pour faire passer passer le testz.csv en cable.ods.
Ces 2 fichiers étant dans c:\

Au plaisir de vous lire

Jean-Luc
Vous ne pouvez pas consulter les pièces jointes insérées à ce message.
open office 4 / windows 7
Avatar de l’utilisateur
Hubert Lambert
SuppOOrter
SuppOOrter
Messages : 1214
Inscription : 06 avr. 2016 07:26

Re: Ouverture en mode cmd d'un fichier .csv

Message par Hubert Lambert »

mauricejl a écrit :Reste donc une petite commande DOS ..... miracle ...... pour faire passer passer le testz.csv en cable.ods.
Si tu as la possibilité d'installer LibreOffice, celui-ci possède un argument de ligne de commande "--convert-to" qui permet de passer le filtre et les options de filtre en arguments.
Pour plus d'informations : https://help.libreoffice.org/Common/Sta ... ameters/fr.
Pour un exemple : https://ask.libreoffice.org/en/question ... mand-line/.
Mais j'avoue que je n'ai encore jamais essayé...
Cordialement.
 Ajout : Plus simple :
- télécharger la dernière version de unoconv
- l'utiliser comme expliquer dans l'aide :

Code : Tout sélectionner

C:\Program Files (x86)\OpenOffice\program\python.exe unoconv -f ods -i FilterOptions="59,34,utf-8,1" testz.csv
Plus de détails sur les paramètres du script : https://linux.die.net/man/1/unoconv 
AOOo 4.1.7 sur Win10
AOOo 4.1.x sur Linux Mint
LibreOffice 5.x/6.x sur Linux Mint
--
| « Nos défauts devraient nous donner une qualité : l'indulgence pour les défauts des autres » (Rivarol)