Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


Re,

suite aux réponses de Pierre-Yves et Michel qui m'ont bien aidé, voici
le résultat qui fonctionne, si ça peut aider :

8< -----------------------------------------------

'CSV_To_ODS
'macro d'importation de fichiers NRB au format CSV vers le format ODS
'à installer dans Mes Macros, bibliothèque CSVlib, module NRBimport

Option Explicit

Sub CSV_To_ODS(ByVal pCSVFileName, pODSFileName As String)

Dim l_PropsIn(1) As New com.sun.star.beans.PropertyValue
Dim l_PropsOut()
Dim l_CSVAdr As String  'le nom du fichier converti en URL
Dim l_ODSAdr As String  'le nom du fichier ODS cible, en URL
Dim oODSdoc As Object   'le classeur à créer
Dim l_SepOpt As String
Dim l_CharSep As String
Dim l_CharType As String
Dim l_ColProps As String
Dim l_Line As String

'conversion des noms des fichiers
l_CSVAdr = ConvertToURL(Trim(pCSVFileName))
l_ODSAdr = ConvertToURL(Trim(pODSFileName))

'paramètres d'importation
l_PropsIn(0).Name  = "FilterName"
l_PropsIn(0).Value = "Text - txt - csv (StarCalc)"
l_PropsIn(1).Name  = "FilterOptions"

'colonnes :
L,Fichier,Page,Struct,Matricule,Nom,Prenom,ZL,CodeErreur,Libelle,ZoneLibre,Pole,Equipe
'numéro   : 1    2      3     4       5      6     7    8     9
10       11      12    13
'type     : 1    2      1     2       2      2     2    2     2
2        2       2     2
l_ColProps = "1/1/2/2/3/1/4/2/5/2/6/2/7/2/8/2/9/2/10/2/11/2/12/2/13/2"
l_SepOpt   = "44" 'code ascii du séparateur de colonnes (virgule)
l_CharSep  = ""   'code ascii du délimiteur de texte (aucun)
l_CharType = "22" 'jeu de caractères (ISO-8859-15/EURO)
l_Line     = "1"  'ligne de départ de l'import
l_PropsIn(1).Value = l_SepOpt & "," & l_CharSep & "," & l_CharType & ","
& l_Line & "," & l_ColProps

'importation
oODSdoc = StarDesktop.loadComponentFromURL(l_CSVAdr, "_blank", 0,
l_PropsIn())
'enregistrement
oODSdoc.storeAsURL(l_ODSAdr, l_PropsOut())
oODSdoc.close(True)
End Sub 'CSV_To_ODS

----------------------------------------------- >8

La ligne de commande Windows shell pour appeler cette macro est :

"%programfiles%\libreoffice 4\program\soffice.exe" --headless
"macro:///CSVlib.NRBimport.CSV_To_ODS(F:\CSRH_DTE\CSV2ODS\NRBresult.csv,F:\CSRH_DTE\CSV2ODS\NRB_test.ods)"


Amicalement,
-- 
Jean-Francois Nifenecker, Bordeaux

-- 
Envoyez un mail à users+unsubscribe@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

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.