convert xls to csv / convertir un xls vers csv under linux

hello,

I have the command to convert a xls to csv but i dont know how to select one
sheet alone.

the script is : libreoffice --invisible --convert-to csv file.xls

anyone could help me?

Best regards

bonjour,

j'ai la commande pour convertir un xls en csv, mais je ne sais pas comment
sélectionner une seule feuille (onglet).

voici le commande: libreoffice --invisible --convert-to csv file.xls sous
linux

Une personne charitable aurrait-elle la solution?

cordialement

Bonjour,

-----Message d'origine-----
De : gmalol [mailto:gmalol@free.fr]
Envoyé : lundi 28 octobre 2013 16:56
À : users@fr.libreoffice.org
Objet : [fr-users] convert xls to csv / convertir un xls vers csv under
linux
[...]>
j'ai la commande pour convertir un xls en csv, mais je ne sais pas comment
sélectionner une seule feuille (onglet).

voici le commande: libreoffice --invisible --convert-to csv file.xls sous
linux

Une personne charitable aurrait-elle la solution?

Je suis sous Windows et ne peut répondre directement à la question posée,
mais tu disposes d'une solution valable pour tous les OS pour exporter la
feuille de ton choix:
- Ouvrir le fichier xls avec LibO
- Se positionner sur la feuille à exporter en csv
- Fichier > Enregistrer sous > Type de fichier: Texte csv

Bonne journée,
Michel

bonjour,

merci pour votre réponse.

j'ai oublié de signaler qu'il était nécessaire de faire cela en ligne de
commande. pour faire cela de manière automatique.

cordialement

Bonjour

gmalol wrote

j'ai la commande pour convertir un xls en csv, mais je ne sais pas comment
sélectionner une seule feuille (onglet).

On serait tenté (en tout cas je l'ai été) d'utiliser une syntaxe du type :
--convert-to csv file.xls#NomFeuille

Hélas cela ne fonctionne pas (du moins dans mon environnement windows).

Du coup, une proposition serait d'appeler une macro depuis la ligne de
commnde. La macro reçoit en argument l'url du classeur et le nom de
la feuille concernée.

Exemple ligne de commande (ci-dessous syntaxe windows):

"\Program Files (x86)\LibreOffice 4\program\soffice.exe" --invisible
"macro:///Standard.Module1.PysConvertXlsToCsv(C:\Tests\a.xls,Feuille2)"

Nota: pas d'espace après la virgule devant le nom de feuille (serait pris
comme faisant partie du nom).

Avec une macro appelée du type:

Sub PysConvertXlsToCsv(sUrlDoc as string, sNomFeuille as string)

dim oClasseur as object
dim Prop1(0) as new com.sun.star.beans.PropertyValue
dim Prop2(1) as new com.sun.star.beans.PropertyValue
dim oFeuilles as object, oFeuille as object

if FileExists(sUrlDoc) then
  sUrlDoc = convertToUrl(sUrlDoc)
  
  Prop1(0).name = "FilterName"
  Prop1(0).value = "MS Excel 97"

  oClasseur = StarDesktop.loadComponentFromURL(sUrlDoc, "_blank", 0, Prop1()
)
  oFeuilles = oClasseur.sheets

  if oFeuilles.hasByName(sNomFeuille) then
    oFeuille = oFeuilles.getByName(sNomFeuille)
    oClasseur.currentController.activeSheet = oFeuille
    
    Prop2(0).name = "FilterName"
    Prop2(0).value = "Text - txt - csv (StarCalc)"
    Prop2(1).name = "FilterOptions"
    Prop2(1).value = "9,39,STANDARD,1"
    
    GlobalScope.BasicLibraries.LoadLibrary("Tools")
    sUrlDoc = GetFileNameWithoutExtension(sUrlDoc) & ".csv"
    oClasseur.storeToUrl(sUrlDoc, Prop2())
  end if
  on error resume next
  oClasseur.close(True)
  on error goto 0
end if

End Sub

Nota...

1. On traite quelques erreurs potentielles
- url inexistant
- nom de feuille incorrect
2. Il faudrait adapter le format selon tes besoins

Bon... pas vraiment ce que tu demandes mais peut-être une
piste à creuser.

Cordialement
Pierre-Yves