Makros/Python-Leitfaden/Calc/Calc-Tabellen
TDF LibreOffice Document Liberation Project Community Blogs Weblate Nextcloud Redmine Ask LibreOffice Spende
Tabellen
In diesem Python-Leitfaden verwenden wir folgende Konvention:
- sheet (Tabelle) ist eine einzelne Tabelle innerhalb eines Dokuments
- workbook ist ein Calc-Dokument
VORSICHT:
Kopieren oder importieren Sie die Funktion msgbox
von Nützliche Funktionen
Namen
- Alle Tabellen(Sheet)-Namen holen
doc = XSCRIPTCONTEXT.getDocument()
names = doc.Sheets.ElementNames
msgbox(names)
Alle Tabellen (Sheets) in einem workbook (Calc-Dokument) zählen
doc = XSCRIPTCONTEXT.getDocument()
count = doc.Sheets.Count
msgbox(count)
Über alle Tabellen (Sheets) iterieren
doc = XSCRIPTCONTEXT.getDocument()
for sheet in doc.Sheets:
msgbox(sheet.Name)
Tabellen (Sheets) holen
- Aktive Tabelle (Sheet) vom aktuellen Dokument holen.
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.getCurrentController().getActiveSheet()
msgbox(sheet.Name)
- Aktive Tabelle (Sheet) mittels Index vom aktuellen Dokument holen
sheet = doc.Sheets[0]
msgbox(sheet.Name)
- Aktive Tabelle (Sheet) mittels Namen vom aktuellen Dokument holen
sheet = doc.Sheets['data']
msgbox(sheet.Name)
Activieren
Fokus zu irgendeiner Tabelle (Sheet) senden
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.Sheets[0]
doc.getCurrentController().setActiveSheet(sheet)
Namen ändern
- Namen für den Benutzer sichtbar ändern
sheet = doc.Sheets[0]
msgbox(sheet.Name)
sheet.Name = 'OtherName'
msgbox(sheet.Name)
- Namen nur sichtbar im Code ändern
sheet = doc.Sheets[0]
msgbox(sheet.CodeName)
sheet.CodeName = 'Data'
msgbox(sheet.CodeName)
Sichtbarkeit der Tabelle (Sheet) setzen
- Setzen Sie die Eigenschaft
IsVisible
aufFalse
um die Tabelle (Sheet) zu verstecken; und setzen Sie es aufTrue
, um es anzuzeigen.
sheet = doc.Sheets[0]
msgbox(sheet.IsVisible)
sheet.IsVisible = False
msgbox(sheet.IsVisible)
sheet.IsVisible = True
Passwort-Management
- Passwort setzen
sheet = doc.Sheets[0]
contra = 'letmein'
sheet.protect(contra)
- Passwort entfernen
sheet = doc.Sheets[0]
contra = 'letmein'
sheet.unprotect(contra)
Prüfen, ob Tabelle (Sheet)im workbook (Calc-Dokument) existiert
doc = XSCRIPTCONTEXT.getDocument()
exists = 'data' in doc.Sheets
msgbox(exists)
Eine leere neue Tabelle (Sheet) einfügen
insertNewByName(NAME, POSITION)
doc = XSCRIPTCONTEXT.getDocument()
doc.Sheets.insertNewByName('new', 0)
Eine existierende Tabelle (Sheet) in ein workbook (Calc-Dokument) einfügen
insertByName(SHEET, POSITION)
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.createInstance('com.sun.star.sheet.Spreadsheet')
doc.Sheets.insertByName(sheet, 0)
Die Position einer Tabelle (Sheet) in einem workbook (Calc-Dokument) verändern
moveByName(NAME, NEUE_POSITION)
doc = XSCRIPTCONTEXT.getDocument()
doc.Sheets.moveByName('new', 3)
Tabelle (Sheet) aus workbook (Calc-Dokument) entfernen
removeByName(NAME)
doc = XSCRIPTCONTEXT.getDocument()
doc.Sheets.removeByName('new')
Ersetzen durch eine leere Tabelle (Sheet)
replaceByName(NAME, SHEET)
VORSICHT: Mit Bedacht benutzen. Diese Funktion ersetzt eine Tabelle (Sheet) NAME
durch einer sauberen Tabelle (Sheet).
doc = XSCRIPTCONTEXT.getDocument()
sheet = doc.createInstance('com.sun.star.sheet.Spreadsheet')
doc.Sheets.replaceByName('data', sheet)
Tabelle (Sheet) kopieren
- Tabelle (Sheet) umbenennen
copyByName(Quell_NAME, NEUER_NAME, POSITION)
VORSICHT: Falls der neue Name existiert, wird es die Tabelle (Sheet) mit dem Namen OUELL_NAME_2
kopieren und es wird keinen Fehler geben.
- Kopieren in dasselbe Dokument
doc = XSCRIPTCONTEXT.getDocument()
doc.Sheets.copyByName('data', 'NewData', 10)
- Kopieren (Importieren) aus einem anderen Dokument
importSheet(QUELLE, QUELL_NAME, POSITION)
source = XSCRIPTCONTEXT.getDocument()
desktop = app.create_instance('com.sun.star.frame.Desktop', True)
path = 'private:factory/scalc'
doc = desktop.loadComponentFromURL(path, '_default', 0, ())
doc.Sheets.importSheet(source, 'Services', 0)
Einfärben eines Tabellen(Sheet)-Registers
VORSICHT
Kopieren oder importieren Sie die Funktion get_color
von Nützliche Funktionen
sheet = doc.Sheets['Sheet1']
sheet.TabColor = get_color(255, 0, 0)