von mikeleb » Sa, 16.02.2019 16:07
Hallo,
weil ich es selbst immer schon mal vorhatte ...
Wenn man häufig csv-Dateien importiert und dabei die Spalten verschiedene Formate haben kann man die Einstellungen in ein Makro umsetzen.
In meinem Fall ist die erste Spalte ein Datum (TMJ), dann zwei Spalten US-Englisch und die vierte Spalte benötige ich nicht.
Code: Alles auswählen
Sub csv_import
Dim args(1) as New com.sun.star.beans.PropertyValue
args(0).Name= "FilterName"
args(0).Value = "Text - txt - csv (StarCalc)"
'ASCII-Codes 44 (Komma), 32 (Leerzeichen), 9 (Tabulator)
'Mehrfachauswahl durch / trennen, z. B. 44/9
sFeldSeparator="44"
'ASCII-Codes 34 (doppelte Hochkomma), 39 (einfache Hochkomma)
sTextBegrenzer="34"
'Systemzeichensatz 0
sZeichensatz="0"
'erste einzulesende Zeile
sErste="1"
'Spaltenformat für jede Spalte festlegen
'Spalte/Format/Spalte/Format/...
'Formate: 1 Standard, 2 Text, 3 Datum (MTJ), 4 Datum (TMJ), 5 Datum (JMT), 9 nicht importieren, 10 US-englisch
'nicht aufgeführte Spalten werden als Standard importiert
sSpaltenFormate="1/4/2/10/3/10/4/9"
args(1).Name="FilterOptions"
args(1).Value =sFeldSeparator & "," & sTextBegrenzer & "," & sZeichensatz & "," & sErste & "," & sSpaltenformate
'Dialog zur Dateiauswahl
sUrl= FileOpenDialog("csv-Datei auswählen")
'oder auch mit Startverzeichnis
'sUrl= FileOpenDialog("csv-Datei auswählen","D:\Dokumente\meine csv Dateien\")
if sUrl<>"" then
StarDesktop.LoadComponentFromURL(sUrl, "_blank",0,args())
end if
End Sub
function FileOpenDialog(sTitle as String, optional sStartverzeichnis as string) as String
if ismissing(sStartverzeichnis) then
oPS=CreateUnoService("com.sun.star.util.PathSettings")
sStartverzeichnis=oPS.work
end if
oFilepicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
oFilepicker.Title = sTitle
oFilepicker.appendFilter("Alle Dateien", "*.*")
oFilepicker.appendFilter("csv-Dateien", "*.csv")
oFilepicker.setCurrentFilter("csv-Dateien")
oFilepicker.setMultiSelectionMode(False)
oFilepicker.setDisplayDirectory(converttourl(sStartverzeichnis))
if oFilepicker.execute()=1 then
files = oFilepicker.getFiles()
FileOpenDialog = files(0)
else
FileOpenDialog=""
end if
End function
Die beiden Makros unter ->Meine Makros abspeichern und dann (für den einfachen Zugriff) in die Symbolleiste einbinden.
Hallo,
weil ich es selbst immer schon mal vorhatte ...
Wenn man häufig csv-Dateien importiert und dabei die Spalten verschiedene Formate haben kann man die Einstellungen in ein Makro umsetzen.
In meinem Fall ist die erste Spalte ein Datum (TMJ), dann zwei Spalten US-Englisch und die vierte Spalte benötige ich nicht.
[code]Sub csv_import
Dim args(1) as New com.sun.star.beans.PropertyValue
args(0).Name= "FilterName"
args(0).Value = "Text - txt - csv (StarCalc)"
'ASCII-Codes 44 (Komma), 32 (Leerzeichen), 9 (Tabulator)
'Mehrfachauswahl durch / trennen, z. B. 44/9
sFeldSeparator="44"
'ASCII-Codes 34 (doppelte Hochkomma), 39 (einfache Hochkomma)
sTextBegrenzer="34"
'Systemzeichensatz 0
sZeichensatz="0"
'erste einzulesende Zeile
sErste="1"
'Spaltenformat für jede Spalte festlegen
'Spalte/Format/Spalte/Format/...
'Formate: 1 Standard, 2 Text, 3 Datum (MTJ), 4 Datum (TMJ), 5 Datum (JMT), 9 nicht importieren, 10 US-englisch
'nicht aufgeführte Spalten werden als Standard importiert
sSpaltenFormate="1/4/2/10/3/10/4/9"
args(1).Name="FilterOptions"
args(1).Value =sFeldSeparator & "," & sTextBegrenzer & "," & sZeichensatz & "," & sErste & "," & sSpaltenformate
'Dialog zur Dateiauswahl
sUrl= FileOpenDialog("csv-Datei auswählen")
'oder auch mit Startverzeichnis
'sUrl= FileOpenDialog("csv-Datei auswählen","D:\Dokumente\meine csv Dateien\")
if sUrl<>"" then
StarDesktop.LoadComponentFromURL(sUrl, "_blank",0,args())
end if
End Sub
function FileOpenDialog(sTitle as String, optional sStartverzeichnis as string) as String
if ismissing(sStartverzeichnis) then
oPS=CreateUnoService("com.sun.star.util.PathSettings")
sStartverzeichnis=oPS.work
end if
oFilepicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
oFilepicker.Title = sTitle
oFilepicker.appendFilter("Alle Dateien", "*.*")
oFilepicker.appendFilter("csv-Dateien", "*.csv")
oFilepicker.setCurrentFilter("csv-Dateien")
oFilepicker.setMultiSelectionMode(False)
oFilepicker.setDisplayDirectory(converttourl(sStartverzeichnis))
if oFilepicker.execute()=1 then
files = oFilepicker.getFiles()
FileOpenDialog = files(0)
else
FileOpenDialog=""
end if
End function
[/code]
Die beiden Makros unter ->Meine Makros abspeichern und dann (für den einfachen Zugriff) in die Symbolleiste einbinden.