[storniert] selektives Kopieren aus CSV-in ODS-Datei

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

Moderator: Moderatoren

kilix
****
Beiträge: 128
Registriert: So, 09.04.2023 11:27

[storniert] selektives Kopieren aus CSV-in ODS-Datei

Beitrag von kilix »

Hallo

ich lese eine CSV-Datei ein und kopiere Bereiche daraus in eine ODS-Datei. Dazu verwende ich einen Code den mir mikele als Beispiel ins Forum gestellt hat. Das sind die Zeilen mit denen kopiert wird:

Code: Alles auswählen

	'Auslesen der Daten in ein Array der Daten
	aDaten=oCSV.Sheets(0).getCellRangeByName("A1:C499").getDataArray
	'Schreiben der Daten in die aktuelle Datei
	oDoc.Sheets(0).getCellRangeByName("H2:J500").setDataArray(aDaten)
Das funktioniert gut. Es wird aber aus allesn Zeilen der CSV eingelesen und kopiert.
Wie kann ich Zeile selektiv kopieren? D.h. kann ich zeilenweise einlesen, in jder Zeile einen Eintrag prüfen und nur jene kopieren die einer Bedingung entsprechen. Ich kann mir vorstellen wie das grundsätzlich funktionieren könnten (For i=... If ... Next usw.). Ich habe aber keine Ahnung wie zeilenweise einlesen kann weil ich ich dazu keinen Bereich und auch keinen festen Eintrag verwenden kann sondern einen indizierten brauche.

Ich komme auf diese Idee weil die mir vorliegenden CSV.Dateien mehr als die Hälfte Zeilen enthalten die nicht mehr aktiv sind und die ich daher nicht benötige.Bei den beiden bisherigen Fällen war es nicht so bedeutend, da gab es "nur" 500 bzw. 10.000 Einträge aus denen ich die nicht mehr aktiven mit den Mitteln der Tabellen gelöscht habe. Ich habe aber nun einen Fall mit etwa 400.000 von denen ich nur einen sehr geringen Teil brauche.
Zuletzt geändert von kilix am Mo, 15.05.2023 21:50, insgesamt 2-mal geändert.
Grüße
kilix
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: selektives Kopieren aus CSV-in ODS-Datei

Beitrag von Karolus »

Ich habe aber nun einen Fall mit etwa 400.000 von denen ich nur einen sehr geringen Teil brauche.
Bei der Anzahl an csv-»Zeilen« würde ich die Quelldatei direkt mit python*** ( +csv, pandas …) einlesen, und die wenigen benötigten Zeilen in eine neue …csv schreiben.
Kannst du du eine hinreichende Anzahl an Rohdatenzeilen nebst den »Filterkriterien« hier posten?

***geht sehr wahrscheinlich auch mit einfachen Kommandozeilenwekzeugen ( sed … awk etc…)
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
kilix
****
Beiträge: 128
Registriert: So, 09.04.2023 11:27

Re: selektives Kopieren aus CSV-in ODS-Datei

Beitrag von kilix »

Hallo,
Danke für deine Antwort aber nachdem ich meine Frage sehr früh gestellt habe, eigentlich nur, um zu erfahren wie das funktionieren kannn und ich auf Grund deiner Anforderung tiefer in die Materie eingedrungen bin habe ich beschlossen diesen Weg nicht weiter zu verfolgen. Er ist zu kompliziert für einfache Anwender. Ich hab diese Selektion in der aus der CSV-Datei erstellten Tabelle mit den Mitteln von Kalk (ohne Makro) duchgeführt und bin mit Calc mehrmals abgestürzt. Nachdem es einfachere, wenn auch für denAnwender etwas auf wändigere Möglickeiten gibt werde ich diesen Weg nicht weiter verfolgen.
Grüße
kilix
Antworten