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]