Tabellenblätter alphabetisch sortieren?

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Stephan
********
Beiträge: 12369
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Tabellenblätter alphabetisch sortieren?

Beitrag von Stephan »

Bitte keine alten Threads verlängern! Ich habe Deinen Post jetzt in einen neuen Thread abgetrennt.

Antwort ist:
WEnn die Tabellenblätter nur aus Ziffern bestehen reicht VAL statt LCase:

Code: Alles auswählen

Sub Sortieren_steigend()
	dok = StarDesktop.CurrentComponent
	anz = dok.Sheets().Count
	dim a(anz-1)
	For i = 0 to anz-1
		a(i) = dok.Sheets(i).Name
	Next
	For i = 0 To anz-2
		For j = i+1 to anz-1
			If VAL(a(i)) > VAL(a(j)) Then
				temp = a(i)
				a(i) = a(j)
				a(j) = temp
			End If
		Next j
	Next i
	For i = 0 to anz-1 
		dok.Sheets.moveByName(a(i),i)
	Next i
End Sub

Gruß
Stephan
Karolus
********
Beiträge: 7438
Registriert: Mo, 02.01.2006 19:48

Re: Tabellenblätter numerisch sortieren [Python]?

Beitrag von Karolus »

Hallo
Das umständliche Herausziehen der Tabellennamen kann man sich ersparen, weil die eh schon in doc.Sheets.ElementNames drinstecken,
Nimmt man dann Python brauchts auch keinen Handgedrechselten Bubble Sort Algoritmus, bei numerischen Tabellennamen muss dann auch nur noch key=int mitgegeben werden:

Code: Alles auswählen

def sort_numeric_sheetnames():
    doc = XSCRIPTCONTEXT.getDocument()
    sheets = doc.Sheets
    sheetnames = sorted(sheets.ElementNames, key=int)
    for i, name in enumerate(sheetnames):
        sheets.moveByName(name, i)
karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
Antworten