Jump to content

Makros/Python-Leitfaden/Calc/Calc-Tabellen

From The Document Foundation Wiki
This page is a translated version of the page Macros/Python Guide/Calc/Calc sheets and the translation is 100% complete.


Zurück zum Inhaltsverzeichnis


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 auf False um die Tabelle (Sheet) zu verstecken; und setzen Sie es auf True, 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)


Zurück zum Inhaltsverzeichnis