SOffice
Il peut-être utile d'utiliser libreoffice en ligne de commande pour automatiser des conversions de fichiers, pas exemple de csv → ods
Installation
Tout d'abord, l'installation par défaut semble insuffisante, voici la liste des paquets :
sudo apt install liblibreoffice-java libreoffice libreoffice-base libreoffice-base-core \ libreoffice-base-drivers libreoffice-calc libreoffice-common libreoffice-core libreoffice-draw \ libreoffice-gnome libreoffice-gtk3 libreoffice-help-common libreoffice-help-fr \ libreoffice-impress libreoffice-java-common libreoffice-l10n-fr libreoffice-math \ libreoffice-nlpsolver libreoffice-report-builder libreoffice-report-builder-bin libreoffice-script-provider-bsh \ libreoffice-script-provider-js libreoffice-script-provider-python libreoffice-sdbc-firebird \ libreoffice-sdbc-hsqldb libreoffice-sdbc-mysql libreoffice-sdbc-postgresql \ libreoffice-style-colibre libreoffice-style-elementary libreoffice-style-yaru libreoffice-wiki-publisher libreoffice-writer
Utilisation
soffice --convert-to <type de fichier> fichier-à-convertir # exemple pour convertir un vieux fichier DBF en CSV : soffice --convert-to csv RESULTAT.DBF
et utilisation plus actuelle et plus complexe, convertir un fichier "CSV" avec séparateur ; (code ASCII 59) vers un tableur ODS :
soffice --convert-to ods --infilter="Text - txt - csv (StarCalc)":59,1,76,1,1 mon-fichier.csv
le infilter prend le type de document entrant, ici CSV, puis 5 valeurs :
| Position du "jeton" | Définition | Définition et exemple de jeton |
|---|---|---|
| 1 | séparateur de champs | le code ASCII, 59 pour le ; et 44 pour , |
| 2 | séparateur de texte | 1, sans, 34 pour des guillemets double, 39 pour des simples |
| 3 | codage des caractères | 0 pour utiliser celui du système, 76 pour définir UTF-8 |
| 4 | le numéro de ligne pour le début de lecture | à partir duquel commencer la lecture. Exemple : 3 (commencer à la troisième ligne). |
| 5 | code de format de cellule |
On peut avoir aussi des filtres pour convertir vers CSV … OutputFilterName :
soffice --convert-to OutputFileExtension[:OutputFilterName[:OutputFilterParams[,param]]]
cf. la doc officielle (liens ci-dessous)
et pour convertir un fichier HTML (qui peut être une étape intérmédiaire entre CSV et ODS pour ajouter des liens url :
soffice --convert-to ods --infilter="HTML (StarCalc)" mon-fichier.html