[Gelöst] Calc: Import vieler csv-Dateien

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

retuwe61
****
Beiträge: 159
Registriert: So, 18.11.2007 21:25

[Gelöst] Calc: Import vieler csv-Dateien

Beitrag von retuwe61 »

Hallo miteinander.
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
Zuletzt geändert von retuwe61 am So, 19.02.2012 00:26, insgesamt 1-mal geändert.
Angewandt wird LibeOffice Version 5.1.6.2
F3K Total
********
Beiträge: 3704
Registriert: Mo, 28.02.2011 17:49

Re: Calc: Import vieler csv-Dateien

Beitrag von F3K Total »

Ich glaube ja, das Du die Zeile

Code: Alles auswählen

Dim FileProperties(1) As New com.sun.star.beans.PropertyValue
aus der Schleife nehmen solltest;-)

Gruß R
retuwe61
****
Beiträge: 159
Registriert: So, 18.11.2007 21:25

Re: Calc: Import vieler csv-Dateien

Beitrag von retuwe61 »

Oh Mann, wenn alles so einfach wäre!
Vielen Dank.
Gruß
Uwe
Angewandt wird LibeOffice Version 5.1.6.2
Antworten