Abschnitte und Gruppierung

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: Abschnitte und Gruppierung

Re: Abschnitte und Gruppierung

von Karolus » Sa, 13.09.2014 10:04

Hallo

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

Karolus

Re: Abschnitte und Gruppierung

von retuwe61 » Sa, 13.09.2014 09:23

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

Re: Abschnitte und Gruppierung

von Karolus » Fr, 12.09.2014 23:28

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

Karolus

Re: Abschnitte und Gruppierung

von retuwe61 » Fr, 12.09.2014 20:48

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

Re: Abschnitte und Gruppierung

von Karolus » Fr, 12.09.2014 14:35

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

Abschnitte und Gruppierung

von retuwe61 » Fr, 12.09.2014 11:40

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

Nach oben