Julien a écrit :
Voici ma solution, en grande partie pompée sur une macro trouvée sur le net, sur un forum openoffice, j'espère ne pas nuire à son auteur :

'Cette partie décrit le document maître, qui va recevoir les données du CSV, c'est un document calc muni d'un bouton de sélection de fichier

doc1 = ThisComponent
feuille1 = doc1.sheets.getByName("import_sconet")
dp = feuille1.drawpage
form = dp.Forms.GetByIndex(0)
ctl = form.getByName("FileSelection")
adresse = ctl.text
'msgbox(adresse)
surl = convertToURL(adresse)

'Cette partie appelle la fonction que j'ai pompé, c'est la partie la plus "critique", tant c'est pénible d'ajuster chacun de ces paramètres

sFilter = "59,,ANSI,1," ' Tab (Chr(9)) delimiter, no text delimiter, ANSI coding
doc2 = loadCSVfromURL(surl, sFilter, false)
feuille2 = doc2.sheets.getByName("Feuille1")

'Et voici la fonction en question, j'avoue n'avoir même pas cherché à tout comprendre...

function loadCSVfromURL(sUrl as String, sFilter as String, bHidden as Boolean) as Object
Dim aProps(2) As New com.sun.star.beans.PropertyValue
aProps(0).Name  = "FilterName"
aProps(0).Value = "Text - txt - csv (StarCalc)"
aProps(1).Name  = "FilterOptions"
aProps(1).Value = sFilter  aProps(2).Name  = "Hidden"
aProps(2).Value = bHidden
loadCSVfromURL = StarDesktop.loadComponentFromURL(sUrl, "_blank", 0, aProps())
end function

'En espérant que ça aide, bon courage...

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Bonjour
en cherchant sur la liste, j'ai trouvé cette petite macro qui va super.
sub Ouvre_CSV
   Dim oDesktop as object
   Dim oDoc as object
   Dim Param(1) As New com.sun.star.beans.PropertyValue
oDesktop = createUnoService("com.sun.star.frame.Desktop")
   Param(0).Name = "FilterName"
   Param(0).Value = "Text - txt - csv (StarCalc)"
   Param(1).Name = "FilterOptions"
'*************************************************************
   '** Options pour ouvrir un fichier délimité                 **
   '*************************************************************
   'cf Chapitre 8.2.2 -> "Filter Options for the CSV Filter" du SDK
   ' 9 = Code ASCII de tab comme séparateur de champ
   '44 = Code ASCII de la virgule comme séparateur de champ
   '34 = Code ASCII du guillemet double comme délimiteur de text
   '0  = ??
   '1  = N° de la première ligne à importer
   '2/10 = Colonne 2 de type US-English (Point comme séparateur décimal)
   '5/5  = Colonne 5 de type YY/MM/DD
   'Les autres colonnes sont de type Standard
   Param(1).Value = "9, 34, 0, 2"
' Param(1).Value = " 9(tabulation) , 34(""), 0(?), 2( à partir de la ligne 2)"
   '*************************************************************
   '** Options pour ouvrir un fichier de largeur fixe          **
   '*************************************************************
   'FIX = Largeur fixe
   '0  = ??
   '1  = N° de la première ligne à importer
   '0/1 = A partir du caractère 0, le type est standard (0)
   '5/2 = A partir du caractère 5, le type est Text (2)
   'Param(1).Value = "FIX,   , 0, 1, 0/1/5/2"
oDoc=oDesktop.loadComponentFromURL("file:///C:/essai.csv","_blank",0,Param()) end sub
Merci à tous
gabriel

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to