Trotz googeln konnte ich mein Problem nicht lösen: Den automatischen Import aller (gleichartigen) csv-Dateien aus irgend einem Verzeichnis.
Mit nachfolgendem Makro würde der Import der ersten Datei funktionieren. Diese wird dann auch wieder geschlossen, die Nächste gesucht und als Tabelle angezeigt.
Gleichzeitig erscheint dann jedoch bei der Zeile
"oCSV = StarDesktop.loadComponentFromURL(aListe(i), "_blank", (0), FileProperties())"
eine Basic-Laufzeitfehlermeldung: "Message: sequence element is not assignable by given value!"
Für Euch ist die Lösung bestimmt einfach.
Gruß
Uwe
Code: Alles auswählen
Sub Import2Calc
GlobalScope.BasicLibraries.LoadLibrary( "Tools" )
MyDialog=createunoservice("com.sun.star.ui.dialogs.FolderPicker")
If MyDialog.execute() = _
com.sun.star.ui.dialogs.ExecutableDialogResults.OK then
aFolder = mydialog.directory
sPfad = ConvertToURL(aFolder)
oUCB = createUnoService("com.sun.star.ucb.SimpleFileAccess")
aListe = oUCB.getFolderContents(sPfad, false)
oImport2Calc = StarDesktop.getCurrentComponent().getCurrentController().getModel()
for i = 0 to uBound(aListe)
Dim FileProperties(1) As New com.sun.star.beans.PropertyValue
FileProperties(0).Name = "FilterName"
FileProperties(0).Value ="Text - txt - csv (StarCalc)"
FileProperties(1).Name = "FilterOptions"
FileProperties(1).Value ="59/124,34,76,1,7/2/9/2/11/2/15/2/16/2/17/2/18/2/21/2/22/2/23/2,0,true,false"
oCSV = StarDesktop.loadComponentFromURL(aListe(i), "_blank", (0), FileProperties())
'---------------
' get/set DataArray oCSV =>Tabelle1
'---------------
oCSV.close(true)
next i
end if
end sub
function getdirs( liste(),z, folder) as integer
sFolderUrl = ConvertToUrl( Folder )
oSimpleFileAccess = createUnoService( "com.sun.star.ucb.SimpleFileAccess" )
aFolders = oSimpleFileAccess.getFolderContents( sFolderUrl,true )
For i = LBound( aFolders ) To UBound( aFolders )
sFile = aFolders( i )
If oSimpleFileAccess.isFolder( sFile ) Then
getdirs( liste(),z, sFile)
Else
liste(z)=sfile
z=z+1
end if
next i
getdirs=z
end function