Nur bestimmte Spalten/Zeilen aus CSV öffnen
Moderator: Moderatoren
Re: Nur bestimmte Spalten/Zeilen aus CSV öffnen
Moin,
ja was denn jetzt? Zeilen(waagerecht) oder Spalten(senkrecht)?
Gruß R
ja was denn jetzt? Zeilen(waagerecht) oder Spalten(senkrecht)?
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Nur bestimmte Spalten/Zeilen aus CSV öffnen
Mehr weniger als mehr
automatisiert kannst du die einzelnen Spalten im Dialog Textimport ausblenden, indem du im Kontextmenü (Rechtsklick!) der betroffenen Spaltenköpfe, die zunächst mit »Standard« beschriftet sind, den Punkt »ausblenden« wählst.
Gruß
lorbass

Gruß
lorbass
Re: Nur bestimmte Spalten/Zeilen aus CSV öffnen
Hi,
das kann man mit Makros erledigen:
Die Makros laden erst die gesamte .csv und löschen dann alle nicht benötigten Spalten/Zeilen
Allerdings muss die Zeiledem Format der .csv-Datei angepasst werden.
Da kann ich ohne Beispieldokument nicht weiterhelfen.
Gruß R
das kann man mit Makros erledigen:
Code: Alles auswählen
Sub S_load_CSV_keep_Columns
Dim Args(1) as New com.sun.star.beans.PropertyValue
sURL = converttourl("C:\Users\<myUsername>\Desktop\Test.csv") ' <------ Dateipfad
Args(0).Name = "FilterName"
Args(0).Value ="Text - txt - csv (StarCalc)"
Args(1).Name = "FilterOptions "
Args(1).Value = "44,34,12,1,,0,false,false" ' <------ hängt von der Art der .csv-Datei ab
odoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Args())
osheet = odoc.sheets(0)
ncolumns = 5 ' <------ Anzahl Spalten
ocursor = osheet.createCursor
ocursor.gotoendofusedArea(false)
nMaxcolumn = ocursor.rangeaddress.endcolumn
osheet.columns.removeByIndex( ncolumns, nMaxcolumn-(ncolumns-1))
End Sub
Sub S_load_CSV_keep_Rows
Dim Args(1) as New com.sun.star.beans.PropertyValue
sURL = converttourl("C:\Users\<myUsername>\Desktop\Test.csv") ' <------ Dateipfad
Args(0).Name = "FilterName"
Args(0).Value ="Text - txt - csv (StarCalc)"
Args(1).Name = "FilterOptions "
Args(1).Value = "44,34,12,1,,0,false,false" ' <------ hängt von der Art der .csv-Datei ab
odoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Args())
osheet = odoc.sheets(0)
nrows = 5 ' <------ Anzahl Zeilen
ocursor = osheet.createCursor
ocursor.gotoendofusedArea(false)
nMaxrow = ocursor.rangeaddress.endrow
osheet.rows.removeByIndex( nrows, nMaxrow-(nrows-1))
End Sub
Allerdings muss die Zeile
Code: Alles auswählen
Args(1).Value = "44,34,12,1,,0,false,false"
Da kann ich ohne Beispieldokument nicht weiterhelfen.
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Nur bestimmte Spalten/Zeilen aus CSV öffnen
Hallo
ich zitiere ein codeschnipsel von Winfried alias komma4
Karolus
ich zitiere ein codeschnipsel von Winfried alias komma4
Code: Alles auswählen
' =========================
' Zum Ermitteln der Filteroptionen für *Deine* CSV-Datei: öffne sie (aus OOo, über
' Dateidialog, unter Verwendung des Import-Dialogs, mit allen nötigen
' Einstellungen), dann lasse folgendes laufen. Notiere die Rückgabe und ersetze im
' Code oben die Werte:
' http://www.oooforum.org/forum/viewtopic.phtml?t=40544
' Villeroy Aug 02, 2006 12:08 am
Sub showFilterOptions
Dim args(),i%
args() = thisComponent.getArgs
for i = 0 to uBound(Args())
if args(i).Name = "FilterOptions" then inputbox "","",args(i).value
next
End Sub
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Nur bestimmte Spalten/Zeilen aus CSV öffnen
Hi,
die Fehlermeldung sagt:
Dies weist darauf hin, dass das Makro die Datei Test.csv nicht findet.
Du sagst der Pfad sei folgendemaßen angegeben:
Wieso sagt die Fehlermeldung dann nicht
???
Du hast den Pfad der zu öffnenden Datei in die Makros eingetragen?
Und, es gibt diese Datei auch?
Gruß R
die Fehlermeldung sagt:
Code: Alles auswählen
Message: unsupported URL (file:///home/Benutzer/Test/Test.csv)
Du sagst der Pfad sei folgendemaßen angegeben:
Code: Alles auswählen
sURL = converttourl("/home/Benutzername/Test/Anmeldung.csv")
Code: Alles auswählen
Message: unsupported URL (file:///home/Benutzer/Test/Anmeldung.csv)
Du hast den Pfad der zu öffnenden Datei in die Makros eingetragen?
Und, es gibt diese Datei auch?
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Nur bestimmte Spalten/Zeilen aus CSV öffnen
Hi,
Die Datei Test.csv habe ich mit deinen Einstellungen erzeugt:
Geht alles so wie es soll.
Gruß R
... kann ich irgendwie nicht glauben. Diese Makros habe ich gerade unter Linux Mint mit AOO 4.0.1 ausprobiert:MisterJones hat geschrieben:Die Datei und der Pfad stimmen 100%!
Code: Alles auswählen
Sub S_load_CSV_keep_five_Columns
Dim Args(1) as New com.sun.star.beans.PropertyValue
sURL = converttourl("/home/<myUser>/Dokumente/LibreOffice/Calc/Test.csv") '<------ Dateipfad
Args(0).Name = "FilterName"
Args(0).Value ="Text - txt - csv (StarCalc)"
Args(1).Name = "FilterOptions "
Args(1).Value = "44,34,21,1,,0,false,false" '<---- hängt von der Art der .csv-Datei ab
odoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Args())
osheet = odoc.sheets(0)
ncolumns = 5 '<--- Anzahl Spalten
ocursor = osheet.createCursor
ocursor.gotoendofusedArea(false)
nMaxcolumn = ocursor.rangeaddress.endcolumn
osheet.columns.removeByIndex( ncolumns, nMaxcolumn-(ncolumns-1))
End Sub
Sub S_load_CSV_keep_five_Rows
Dim Args(1) as New com.sun.star.beans.PropertyValue
sURL = converttourl("/home/<myUser>/Dokumente/LibreOffice/Calc/Test.csv") '<------ Dateipfad
Args(0).Name = "FilterName"
Args(0).Value ="Text - txt - csv (StarCalc)"
Args(1).Name = "FilterOptions "
Args(1).Value = "44,34,21,1,,0,false,false" '<---- hängt von der Art der .csv-Datei ab
odoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Args())
osheet = odoc.sheets(0)
nrows = 5 '<--- Anzahl Zeilen
ocursor = osheet.createCursor
ocursor.gotoendofusedArea(false)
nMaxrow = ocursor.rangeaddress.endrow
osheet.rows.removeByIndex( nrows, nMaxrow-(nrows-1))
End Sub
Code: Alles auswählen
44,34,21,1,,0,false,false
Gruß R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Nur bestimmte Spalten/Zeilen aus CSV öffnen
So,
damit es nun keine Verwirrungen mit dem Dateipfad mehr geben kann, habe ich ein Dateiauswahlfenster (com.sun.star.ui.dialogs.FilePicker) mit eingebaut.
Führe entweder S_load_CSV_keep_five_Columns oder S_load_CSV_keep_five_Rows aus, und wähle deine .csv Datei.
Gruß R
damit es nun keine Verwirrungen mit dem Dateipfad mehr geben kann, habe ich ein Dateiauswahlfenster (com.sun.star.ui.dialogs.FilePicker) mit eingebaut.
Führe entweder S_load_CSV_keep_five_Columns oder S_load_CSV_keep_five_Rows aus, und wähle deine .csv Datei.
Code: Alles auswählen
Sub S_load_CSV_keep_five_Columns
Dim Args(1) as New com.sun.star.beans.PropertyValue
sURL = F_get_Url '<------ Dateipfad
Args(0).Name = "FilterName"
Args(0).Value ="Text - txt - csv (StarCalc)"
Args(1).Name = "FilterOptions "
Args(1).Value = "44,34,21,1,,0,false,false" '<---- hängt von der Art der .csv-Datei ab
odoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Args())
osheet = odoc.sheets(0)
ncolumns = 5 '<--- Anzahl Spalten
ocursor = osheet.createCursor
ocursor.gotoendofusedArea(false)
nMaxcolumn = ocursor.rangeaddress.endcolumn
osheet.columns.removeByIndex( ncolumns, nMaxcolumn-(ncolumns-1))
End Sub
Sub S_load_CSV_keep_five_Rows
Dim Args(1) as New com.sun.star.beans.PropertyValue
sURL = F_get_Url '<------ Dateipfad
Args(0).Name = "FilterName"
Args(0).Value ="Text - txt - csv (StarCalc)"
Args(1).Name = "FilterOptions "
Args(1).Value = "44,34,21,1,,0,false,false" '<---- hängt von der Art der .csv-Datei ab
odoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Args())
osheet = odoc.sheets(0)
nrows = 5 '<--- Anzahl Zeilen
ocursor = osheet.createCursor
ocursor.gotoendofusedArea(false)
nMaxrow = ocursor.rangeaddress.endrow
osheet.rows.removeByIndex( nrows, nMaxrow-(nrows-1))
End Sub
function F_get_Url as string
oDialog = createunoservice("com.sun.star.ui.dialogs.FilePicker")
oDialog.appendFilter("Quelldatei","*.csv")
oDialog.displaydirectory="c:\"
if odialog.execute = 0 then
exit function
endif
F_get_Url = oDialog.Files(0)
end function
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Nur bestimmte Spalten/Zeilen aus CSV öffnen
Du müsstest einfach nur tun was da bereits stehtMisterJones hat geschrieben:Klasse das klappt einwandfrei!
Aber gibt es auch eine Möglichkeit, Spalte A, C und D auszuwählen, also nicht nebeneinander liegende Spalten zu selektieren?
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: Nur bestimmte Spalten/Zeilen aus CSV öffnen
Dann solltest du den beheben, wie man das bei der Programmierung halt gelegentlich machen muss. Ich kann mir irgendwie nicht so recht vorstellen, dass Rik oder Karolus oder gar beide dir irgendwelchen Blödsinn unterjubeln.MisterJones hat geschrieben:hier erhalte ich einen Syntaxfehler...
Gruß
lorbass
Re: Nur bestimmte Spalten/Zeilen aus CSV öffnen
Moin,
hier ein Makro mit auswählbaren Spalten:
Gruß R
hier ein Makro mit auswählbaren Spalten:
Code: Alles auswählen
Sub S_load_CSV_keep_named_Columns
aColumns = Array("A","C","D")
Dim Args(1) as New com.sun.star.beans.PropertyValue
sURL = F_get_Url '<------ Dateipfad
Args(0).Name = "FilterName"
Args(0).Value ="Text - txt - csv (StarCalc)"
Args(1).Name = "FilterOptions"
Args(1).Value = "44,34,21,1,,0,false,false" '<---- hängt von der Art der .csv-Datei ab
odoc = StarDesktop.loadComponentFromURL(sURL, "_blank", 0, Args())
osheet = odoc.sheets(0)
ocursor = osheet.createCursor
ocursor.gotoendofusedArea(false)
nMaxcolumn = ocursor.rangeaddress.endcolumn
for i = nMaxcolumn to 0 step -1
bfound = false
for k = 0 to ubound(aColumns)
if osheet.columns.getbyIndex(i).name = aColumns(k) then bfound = true
next k
if bfound = false Then osheet.columns.removeByIndex( i, 1)
next i
End Sub
function F_get_Url as string
oDialog = createunoservice("com.sun.star.ui.dialogs.FilePicker")
oDialog.appendFilter("Quelldatei","*.csv")
oDialog.displaydirectory="c:\"
if odialog.execute = 0 then
exit function
endif
F_get_Url = oDialog.Files(0)
end function
Zuletzt geändert von F3K Total am Sa, 22.02.2014 07:29, insgesamt 1-mal geändert.
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO