Abschnitte und Gruppierung

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

Moderator: Moderatoren

retuwe61
****
Beiträge: 159
Registriert: So, 18.11.2007 21:25

Abschnitte und Gruppierung

Beitrag von retuwe61 »

Guten Tag miteinander.
Für die Beschreibung meines Problems habe ich eine Tabelle hochgeladen.
Wiederkehrend erhalte ich in der Anzahl verschiedene Daten in csv-Dateien, die ich mittels Makro in eine Tabelle einfüge (siehe Bereich A1:G7).
Die Anzahl der Datensätze zu einer Aktennummer ist abhängig von der Anzahl der Personen.
Diesen Bereich möchte ich im Anschluss in Tabelle2 anders strukturieren, wobei die Spaltenbezeichnungen (A2:D2) zu Zeilenbezeichnungen werden und die Spaltenbezeichnungen (E2:G2) mit den gruppierten Personaldaten darunter gehängt werden (siehe A11:C25).
Hat jemand eine Idee, ob das überhaupt realisierbar ist, und wenn ja, man mir entsprechende Tipps in Stichworten geben kann?
Vielen Dank.
Gruß
Uwe
Dateianhänge
Beispiel.ods
(16.63 KiB) 142-mal heruntergeladen
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Abschnitte und Gruppierung

Beitrag von Karolus »

Hallo

Code: Alles auswählen

from itertools import groupby

def groupby_first_Column(*_):
    """
    http://de.openoffice.info/viewtopic.php?f=18&t=64568#p248646
    """
    doc = XSCRIPTCONTEXT.getDocument()
    outsheet = doc.Sheets.getByIndex(1)
    sel = doc.CurrentSelection
    data = sel.DataArray
    headrow, data = data[0], data[1:]
    colfix = headrow[:5]
    blockheader = headrow[4:]
    
    out = []
    tmp = [list(block) for k, block
             in groupby(data, key=lambda r: r[0])]
    
    for block in tmp:
        prelim = zip( colfix, list(block)[0][:5] , ('', '', '','') )
        out.extend( prelim )
        out.append( blockheader )
        out.extend( list( zip( *list( zip( *block))[4:])))
        
    outrange = outsheet.getCellRangeByPosition(0, 1, 2, len( out ))
    outrange.setDataArray( tuple( out ))
 
siehe Anhang
gruppieren.ods
(56.03 KiB) 139-mal heruntergeladen
[edit Fehler in Funktion berichtigt Datei bitte neu herunterladen ]
Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
retuwe61
****
Beiträge: 159
Registriert: So, 18.11.2007 21:25

Re: Abschnitte und Gruppierung

Beitrag von retuwe61 »

Guten Abend Karolus. Vielen Dank dafür, dass du dich so schnell mit meiner Frage auseinandergesetzt und einen Lösungsweg aufgezeigt hast. Es funktioniert so, wie ich es mir gewünscht habe. Allerdings weiß ich (noch) nicht, ob ich dein Python-Makro überhaupt aus meinem Importmakro heraus starten und die Daten anschließend mit einem anderen Makro weiter formatieren kann. Das Ganze mit Klick auf einen Button.
Würde das funktionieren?
Gruß
Uwe
Angewandt wird LibeOffice Version 5.1.6.2
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Abschnitte und Gruppierung

Beitrag von Karolus »

Hallo
Gehen tut das auch irgendwie, nur wäre es dann schon mit weniger Aufwand verbunden alles in Python zu machen.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
retuwe61
****
Beiträge: 159
Registriert: So, 18.11.2007 21:25

Re: Abschnitte und Gruppierung

Beitrag von retuwe61 »

Für jemanden, der Python beherrscht, bestimmt. Für mich nicht.
Deshalb hatte ich mir einen Lösungsweg/Tipps mit OO-Basic erhofft.
Um zu verstehen, wie es realisiert werden kann.
Trotzdem vielen Dank.
Gruß
Uwe
Angewandt wird LibeOffice Version 5.1.6.2
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: Abschnitte und Gruppierung

Beitrag von Karolus »

Hallo

Dann fang an Python zu lernen, mit deiner Einstellung würde ich heute auch noch lediglich in Basic rumbasteln.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Antworten