Inhalte

# Dienst SFDocuments.Chart

Der Dienst Chart bietet eine Reihe von Eigenschaften und Methoden zur Handhabung von Diagrammen in Calc-Dokumenten. Mit diesem Dienst ist es möglich:

- Auf Diagrammobjekte in Calc-Dokumenten zugreifen und deren Eigenschaften bearbeiten.

- Neue Diagramme erstellen und diese in ein Calc-Dokument einfügen.

- Diagramme als Bilddateien exportieren.

## Diagrammnamen

Diagramme können zwei verschiedene Namen haben:

- Ein interner Name, der von LibreOffice vergeben wird, sobald das Diagrammobjekt erstellt wird (normalerweise "Objekt 1", "Objekt 2", …).

- Ein benutzerdefinierter Name, der festgelegt werden kann, indem Sie mit der rechten Maustaste auf das Diagramm klicken und im Kontextmenü Name… wählen.

Der Dienst Chart verwendet hauptsächlich den benutzerdefinierten Namen, um auf ein Diagrammobjekt zuzugreifen. Wenn er nicht existiert, wird der interne Name verwendet.

## Dienstaufruf

Vor der Verwendung des Dienstes Chart muss die Bibliothek ScriptForge geladen oder importiert werden:

• Grundlegende Makros erfordern das Laden der Bibliothek ScriptForge mit der folgenden Anweisung:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-Skripte erfordern einen Import aus dem Modul scriptforge:
from scriptforge import CreateScriptService

Der Dienst Chart wird von einer Dienstinstanz Calc entweder unter Verwendung der Methode Chart oder der Methode CreateChart instanziiert.

##### In Basic

Das folgende Beispiel erstellt eine Dienstinstanz Chart aus einem vorhandenen Diagramm im aktuellen Calc-Dokument:

        GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
        Dim oDoc as Object, oChart as Object
        Set oDoc = CreateScriptService("Calc")
        Set oChart = oDoc.Charts("Sheet1", "Object 1")

Im folgenden Beispiel wird der Dienst Chart instanziiert, indem ein neues Diagrammobjekt basierend auf den im Bereich „Sheet1.A1:C10“ enthaltenen Daten erstellt wird.

        Dim oDoc as Object, oChart as Object
        Set oDoc = CreateScriptService("Calc")
        Set oChart = oDoc.CreateChart("My Chart", "Sheet1", "Sheet1.A1:C10")

Lesen Sie die Methodenbeschreibung CreateChart, um mehr über ihre Argumente zu erfahren.

##### In Python

Die obigen Beispiele können wie folgt in Python geschrieben werden:

        from scriptforge import CreateScriptService
        doc = CreateScriptService("Calc")
        chart = doc.Charts("Sheet1", "Object 1")

        doc = CreateScriptService("Calc")
        chart = doc.CreateChart("My Chart", "Sheet1", "Sheet1.A1:C10")

## Eigenschaften

Name | ReadOnly | Typ | Beschreibung
--- | --- | --- | ---
ChartType | Nein | String | Legt den Diagrammtyp als Zeichenfolge fest, der einen der folgenden Werte annehmen kann: "Pie", "Bar", "Donut", "Column", "Area", "Line", "XY", "Bubble", "Net ".
Deep | Nein | Boolean | Wenn True angibt, dass das Diagramm dreidimensional ist und jede Reihe in Z-Richtung angeordnet ist. Bei False werden Reihen unter Berücksichtigung von nur zwei Dimensionen angeordnet.
Dim3D | Nein | Boolean or String | Legt fest, ob das Diagramm mit 3D-Elementen angezeigt wird. Wenn der Wert eine Zeichenfolge ist, muss er entweder "Bar", "Cylinder", "Cone" oder "Pyramid" sein. Wenn der boolesche Wert True angegeben ist, wird das Diagramm mit 3D-Balken angezeigt.
Exploded | Nein | Numeric | Legt fest, um wie viel Tortensegmente von der Diagrammmitte als Prozentsatz des Radius versetzt werden. Gilt nur für Torten- und Ringdiagramme.
Filled | Nein | Boolean | Wenn True, legt es ein gefülltes Netzdiagramm fest. Gilt nur für Netzdiagramme.
Legend | Nein | Boolean | Legt fest, ob das Diagramm eine Legende hat oder nicht.
Percent | Nein | Boolean | Bei True werden Diagrammreihen gestapelt und jede Kategorie ergibt 100 %. Anwendbar auf Flächen-, Balken-, Blasen-, Säulen- und Netzdiagramme.
Stacked | Nein | Boolean | Bei True werden Diagrammreihen gestapelt. Anwendbar auf Flächen-, Balken-, Blasen-, Säulen- und Netzdiagramme.
Title | Nein | String | Legt den Haupttitel des Diagramms fest.
XTitle | Nein | String | Legt den Titel der X-Achse fest.
YTitle | Nein | String | Legt den Titel der Y-Achse fest.
XChartObj | Ja | UNO-Objekt | Gibt das Objekt zurück, welches das Diagramm darstellt, das eine Instanz der Klasse ScChartObj ist.
XDiagram | Ja | UNO-Objekt | Gibt das Objekt com.sun.star.chart.XDiagram zurück, welches das Diagramm des Diagrammobjekts darstellt.
XShape | Ja | UNO-Objekt | Gibt das Objekt com.sun.star.drawing.XShape zurück, welches die Form des Diagramms darstellt.
XTableChart | Ja | UNO-Objekt | Gibt das Objekt com.sun.star.table.XTableChart zurück, welches die im Diagramm angezeigten Daten darstellt.

## Ein Diagramm erstellen

Betrachten Sie die folgenden Daten im Bereich "A1: B6" einer Tabelle mit dem Namen "Report".

| A | B
--- | --- | ---
1 | Sample A | Sample B
2 | 36 | 40
3 | 39 | 43
4 | 45 | 40
5 | 52 | 48

Die folgenden Beispiele in Basic und Python zeigen, wie Sie aus diesen Daten ein Liniendiagramm mit Legenden erstellen.

##### In Basic

        oDoc = CreateScriptService("Calc")
        oChart = oDoc.CreateChart("Samples", "Report", "Report.A1:B6")
        oChart.ChartType = "Line"
        oChart.Legend = True
        oChart.Resize(1000, 1000, 25000, 15000)

##### In Python

        doc = CreateScriptService("Calc")
        chart = doc.CreateChart("Samples", "Report", "Report.A1:B6")
        chart.ChartType = "Line"
        chart.Legend = True
        chart.Resize(1000, 1000, 25000, 15000)

Das Diagramm muss nicht in der selben Tabelle erstellt werden, in der sich die Daten befinden. Es kann in jeder vorhandenen Tabelle der aktuellen Datei erstellt werden, indem der Tabellenname im zweiten Argument der Methode CreateChart festgelegt wird.

## Methoden

Liste der Methoden im Dienst Chart
ExportToFile | Resize

## ExportToFile

Speichert das Diagramm als Bilddatei an einem angegebenen Ort. Gibt True zurück, wenn die Bilddatei erfolgreich erstellt werden konnte.

### Syntax:

chart.ExportToFile(filename: str, imagetype: str = "png", overwrite: bool = False): bool

### Parameter:

filename: Identifiziert den Pfad und Dateinamen, wo das Bild gespeichert wird. Es muss der in SF_FileSystem.FileNaming definierten Notation folgen.

imagetype: Der Name des zu erstellenden Bildtyps. Folgende Werte werden akzeptiert: "gif", "jpeg", "png" (Standard), "svg" und "tiff".

overwrite: Legt fest, ob die Zieldatei überschrieben werden kann (Standard = False).

### Beispiel:

##### In Basic

          oChart.ExportToFile("C:\Temp\myChart.svg", ImageType := "svg", Overwrite := True)

##### In Python

          chart.ExportToFile(r"C:\Temp\myChart.svg", imagetype="svg", overwrite=True)

## Resize

Ändert die Position des Diagramms in der aktuellen Tabelle und verändert seine Breite und Höhe. Gibt True zurück, wenn die Größenänderung erfolgreich war.

### Syntax:

chart.Resize([xpos: int], [ypos: int], [width: int], [height: int]): bool

### Parameter:

xpos, ypos: Legt die neuen X- und Y-Positionen des Diagramms fest. Wenn einer dieser Werte weggelassen wird oder negative Werte angegeben werden, bleiben die entsprechenden Positionen unverändert.

width: Legt die neue Breite des Diagramms fest. Wenn dieses Argument weggelassen oder ein negativer Wert angegeben wird, bleibt die Diagrammbreite unverändert.

height: Legt die neue Höhe des Diagramms fest. Wenn dieses Argument weggelassen oder ein negativer Wert angegeben wird, bleibt die Diagrammhöhe unverändert.

Alle Argumente werden als ganzzahlige Werte bereitgestellt, die 1/100 Millimeter entsprechen.

### Beispiel:

##### In Basic

          ' Ändert nur die X- und Y-Position
          oChart.Rezise(1000, 3000)
          ' Ändert nur die Diagrammbreite und -höhe
          oChart.Resize(, , 25000, 12500)
          ' Schlüsselwortargumente werden unterstützt
          oChart.Resize(Width := 25000, Height := 12500)

##### In Python

          chart.Rezise(1000, 3000)
          chart.Resize(-1, -1, 20000, 20000)
          chart.Resize(width=25000, height=12500)

Alle ScriptForge Basic-Routinen oder Bezeichner, denen ein Unterstrich "_" vorangestellt ist, sind für den internen Gebrauch reserviert. Sie sind nicht für die Verwendung in Basic-Makros oder Python-Skripten vorgesehen.

Verwandte Themen

Dienst SFDocuments.Calc