Seite 1 von 1

CSV mit Autofilter öffnen

Verfasst: Do 5. Okt 2017, 10:54
von Team14
Hallo Liebe Gemeinde,

ich wollte fragen, ob es mit LibreOffice irgendwie möglich ist, eine CSV-Datei vollautomatisch so zu öffnen, dass der Import-Dialog übersprungen wird, und die 1. Zeile einen Autofilter bekommt. Idealerweise auch noch die Darstellung der 1. Zeile (Header) einfrieren, damit sie immer sichtbar ist, auch wenn man sich die 1000ste Zeile grad anschauen möchte.

Lässt sich das irgendwie mittels Parameter beim Starten von Libreoffice machen, oder zur Not über ein Makro?

LG, Karl

Re: CSV mit Autofilter öffnen

Verfasst: Sa 7. Okt 2017, 13:11
von Helmut_S
Hallo Team14, vieles kann man heutzutage automatisieren und das Meiste geht elektrisch, oder elektronisch, nur die Unzucht wird nach wie vor "getrieben" ;) - Spaß beiseite. Dein "Problem" konnte ich zumindest teilweise nachstellen, wenn auch nicht lösen.
Wie in der Hilfe zu Libreoffice (Taste F1 und Eingabe "Startparameter") nachzulesen ist, lässt sich das Programm auch aus der (Linux) Konsole oder (Windows) Kommandozeile starten und wenn du die Datei angibst, die dabei geladen werden soll, geschieht das auch - vollautomatisch!! - wie gewünscht.
Bei einer csv-Datei fordert dich der Eingabe-Dialog allerdings auf, eine Auswahl zu treffen. Falls die default-Einstellungen passen brauchst du nur auf die "ok" - Taste zu drücken und schon ist die csv-Datei geladen. Der Cursor steht normalerweise nun in der Zelle A1; mit einem weiteren Klick in der Standard-Smbolleiste auf "Autofilter" wird die 1.Zeile mit einem Autofilter versehen, wie von dir gewünscht! Um nun die erste Zeile zu fixieren bedarf es ohne Anpassung zweier Klicks - 1 auf "Zeile/Spalten fixieren" und 1 auf "Erste Zeile fixieren". also insgesamt 4 Klicks. Mit einer Anpassung der Standard-Symbolleiste kannst du dir den Befehl "Erste Zeile fixieren" auf eine Symbolleiste legen, dann sparst du dir 1 Klick. Also sind es bis zu deinem gewünschten Ergebnis 3 Klicks.
Wie weiters in der F1-Hilfe nachzulesen ist, kann man libreoffice auch mit einem Makro starten: {Datei} macro:///[Bibliothek.Modul.Makroname]
Öffnet die Datei und führt das angegebene Makro aus.
Hier muss ich leider passen, aber vielleicht findet sich ein komptetenterer User, der dir für deinen Wunsch ein Makro schreibt, oder dir dabei hilft.
Grüße Helmut

Re: CSV mit Autofilter öffnen

Verfasst: Sa 7. Okt 2017, 15:25
von F3K Total
Hi,
ja per Makro geht es z.B. so:

Code: Alles auswählen

Sub S_load_csv_Autofilter_and_Fix
    Dim Args(1) as New com.sun.star.beans.PropertyValue
    sURL = converttourl("C:\Users\<USER>\Desktop\DATEN.csv") '    <------ Dateipfad der zu ladenden Datei
    Args(0).Name = "FilterName"
    Args(0).Value ="Text - txt - csv (StarCalc)"
    Args(1).Name = "FilterOptions"
    Args(1).Value = "59,34,76,1,,0,true,true,true,false"
    odoc = StarDesktop.loadComponentFromURL(sURL,"_blank", 0, Args)
    oController = odoc.currentcontroller
    oFrame = oController.Frame
    dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
    dispatcher.executeDispatch(oFrame, ".uno:DataFilterAutoFilter", "", 0, Array())
    oController.freezeAtPosition(0,1) 
end sub
mit der angehängten Datei. Die FilterOptions sind je nach Typ der .csv Datei anzupassen, findest du hier

Gruß R

Re: CSV mit Autofilter öffnen

Verfasst: Mo 26. Mär 2018, 10:47
von Team14
Danke für eure Hilfe!
Das löst jedenfalls meine ursprüngliche Frage.

Ich hab in der Zwischenzeit einen etwas anderen Weg gefunden, der aber auch vielversprechend scheint.

Es entsteht dabei eine Calc-Datei, die die Formatierung und sonstige Einstellungen behält, die Daten jedoch aus einer CSV kommen.

Ich hab das hier auf meinem Wiki etwas zusammengefasst: http://www.zeilhofer.co.at/wiki/doku.php?id=datenbank

Kuz: Eine Calc-Datei bindet eine Tabelle einer registrierten Datenbank ein, wobei die Datenbank (HSQLDB) auf der CSV basiert.

Leider stehe ich hier vor einem Problem, wo ich nicht mehr weiter weiß. Ich hab die Daten soweit im Calc importiert, aber ich möchte natürlich auch, dass Änderungen dann wieder in der CSV landen, also eine bidirektionale Datenanbindung. Ist sowas überhaupt möglich?

LG, Karl

Re: CSV mit Autofilter öffnen

Verfasst: Mo 26. Mär 2018, 10:51
von Team14
@R: Zu deinem Vorschlag per Makro.

Lässt sich das irgendwie dann so einrichten, dass eine CSV-Datei aus dem File-Browser direkt immer so geöffnet wird?

Oder anders gefragt, kann ich aus der Konsole so ein Makro starten? Oder muss dazu schon LibreOffice mit einem Dokument laufen?

LG, Karl

Re: CSV mit Autofilter öffnen

Verfasst: Mo 26. Mär 2018, 18:30
von F3K Total
Moin,
du kannst aus der Konsole LibreOffice starten, und ein auszuführendes Makro, sogar mit Parameter, übergeben, Beispiel:

Code: Alles auswählen

C:\Program Files\OpenOffice 4\program\soffice.exe -norestore -nologo macro:///Standard.Start_application.S_on_hidden_Loading("hallo Welt")
Natürlich musst du die Pfade durch bei dir existierende ersetzen.
Gruß R