tabellar hat geschrieben:
Die Objektstruktur in dem Modul koennte also dann vielleicht so aussehen:
document
.Sheets -> Sheet-Containerobjklasse
..Sheet -> Sheet-Objekt
...Cells -> Zellen-Containerklasse oder Bereichsobjekt(Range)
....Cell -> Zellen-Objekt
Code: Alles auswählen
...
s.Cells('A1').Value='Hallo'
cell=s.Cells('1,2')
cell.Value='Joerg'
s.Cells('C7:C19').Value= range(13)
s.Cells('B1:B3').Value=['a','b','c']
s.Cells('A1:B2').Font='Arial'
s.Cells('A1:B2').Font.Bold=1
...
__________
Juergen
Hallo Jürgen,
Da scheinen wir ja genau gleich zu denken.
Die Klassen SpreadSheet, Cell und CellProxy (dein Cells) habe ich schon prototypisch implementiert. CellProxy dient dazu, Eigenschaftszuweisungen an die einzelnen Zellen weiterzuleiten.
Trotzdem finde ich es immer noch besser(weil Python-like), mit eckigen Klammern und Slices zu arbeiten, um an Tabellenbereiche ranzukommen.
Was bisher geht, ist z.B.:
s['A1':'B2'].Font='Arial'
Das .Value braucht man bei mir nicht, Werte können direkt zugewiesen werden, neue Zellenobjekte werden bei erstmaliger Zuweisung automatisch angelegt:
s['C7':'C19'] = range(13)
Was übrigens schwieriger ist, ist folgendes:
s['A1':'B2'].Font.Bold=1
Hier müßte als 'Font' zuerst ein AttributeProxy vom CellProxy zurückgegeben werden, der die Attribut-Zuweisung 'Bold=1' dann automatisch an alle beteiligten zellen des CellProxy weiterleitet... das habe ich noch nicht.
Ich spiele noch ein bißchen rum, dann gebe ich meinen Code raus, in den nächsten Tagen, ok?
Hätte denn jemand ein bißchen Webspace und FTP-Zugang für die ersten Fragmente des Projektes?
Tschö
Jörg