Hallo,
Jens Nürnberger schrieb:
> Zum laden würde eine *csv Tabelle reichen die ich in Calc
> importiere, in
> Delphi kann ich das schreiben ich dachte nur das irgend jemand so was
> schon mal direkt in Calc gemacht hat.
Wenn das Ganze nur für Windows sein soll:
Sehr wahrscheinlich geht das auch direkt über StarBasic, auf dem Weg
über eine Batch-Datei, also:
*erstelle mittel StarBasic eine Batch, die die csv erzeugt
*starte die Batch mittels StarBasic
*öffne die csv mittels StarBasic
*kopiere die Werte der csv das sie 'eigenständig' werden mittels
StarBasic
*lösche die csv und die Batch mittels StarBasic
Ich habe jetzt aber mal versucht das Ganze in StarBasic mit Rückgriff
auf den WSH zu machen. Folgendes funktioniert bei mir (OOo 2.0.2,
Windows 2000):
Sub pfade_in_tabelle()
oleService = createUnoService("com.sun.star.bridge.OleObjectFactory")
WSH=oleService.createInstance("MSScriptControl.ScriptControl")
WSH.Language = "VBScript"
vbs=vbs+"Set shell = CreateObject(""Shell.Application"")"+Chr(10)
vbs=vbs+"Set ordner = shell.BrowseForFolder(0, ""Ordner auswählen"",
0,"""")"+Chr(10)
vbs=vbs+"Set parent = ordner.ParentFolder"+Chr(10)
vbs=vbs+"set folderitems = parent.items"+Chr(10)
vbs=vbs+"for each item in folderitems"+Chr(10)
vbs=vbs+"if item.Name = ordner.Title Then"+Chr(10)
vbs=vbs+"pfad = item.Path"+Chr(10)
vbs=vbs+"exit for"+Chr(10)
vbs=vbs+"end if"+Chr(10)
vbs=vbs+"Next"+Chr(10)
vbs=vbs+"set fs = CreateObject(""Scripting.FileSystemObject"")"+Chr(10)
vbs=vbs+"set handle = fs.GetFolder(pfad)"+Chr(10)
vbs=vbs+"ReDim dat_name(handle.files.Count-1)"+Chr(10)
vbs=vbs+"ReDim dat_dat(handle.files.Count-1)"+Chr(10)
vbs=vbs+"for Each file in handle.files"+Chr(10)
vbs=vbs+"dat_name(i) = file.Name"+Chr(10)
vbs=vbs+"dat_dat(i) = CStr(file.DateCreated)"+Chr(10)
vbs=vbs+"i = i + 1"+Chr(10)
vbs=vbs+"Next"
WSH.ExecuteStatement(vbs)
a() = WSH.CodeObject.dat_name()
b() = WSH.CodeObject.dat_dat()
spfad = WSH.CodeObject.pfad
Dim Dummy()
dokument = StarDesktop.loadComponentFromURL( "private:factory/scalc" ,
"_blank", 0, Dummy() )
dokument.Sheets(0).getCellByPosition(0, 0).String = "Dateiname"
dokument.Sheets(0).getCellByPosition(1, 0).String = "Erst.-Datum"
dokument.Sheets(0).getCellByPosition(2, 0).String = "Pfad"
For i = LBOUND(a()) to UBOUND(a())
dokument.Sheets(0).getCellByPosition(0, i+1).String = a(i)
dokument.Sheets(0).getCellByPosition(1, i+1).String = b(i)
dokument.Sheets(0).getCellByPosition(2, i+1).String = spfad
Next
For i = 0 to 2
dokument.Sheets(0).Columns(i).OptimalWidth = TRUE
Next
End Sub
Die Konstruktion mit den 2 Arrays ist noch nicht so toll, aber ich
kriege es nicht in ein zweidimensionales Array, keine Ahnung warum.
Gruß
Jörg
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]