Inhalte
Index 🔎︎

# Dienst ScriptForge.Chart

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

- Auf Diagrammobjekte in Calc-Dokumenten zuzugreifen und deren Eigenschaften zu bearbeiten.

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

- Diagramme als Bilddateien exportieren.

## Diagrammnamen

Diagramme können zwei verschiedene Namen haben:

- Einen internen Namen, der von LibreOffice vergeben wird, sobald das Diagrammobjekt erstellt wird (normalerweise "Objekt 1", "Objekt 2", …).

- Einen benutzerdefinierten Namen, 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

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. Wenn 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, gibt es ein gefülltes Netzdiagramm an. 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 Diagrammsobjekts darstellt.
XShape | Ja | UNO-Objekt | Gibt das Objekt com.sun.star.drawing.XShape zurück, welches die Form des Diagramms darstellt.
XTableChart | Yes | UNO Object | Returns the com.sun.star.table.XTableChart object representing the data being displayed in the chart.

## Creating a chart

Consider the following data in the range "A1:B6" of a sheet named "Report".

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

The examples below in Basic and Python show how to create a line chart from this data with legends.

##### 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)

The chart does not need to be created in the same sheet where the data is located. It can be created in any existing sheet in the current file by specifying the sheet name in the second argument of the CreateChart method.

## Methods

List of Methods in the Chart Service
ExportToFile | Resize

## ExportToFile

Saves the chart as an image file in a specified location. Returns True if the image file could be successfully created.

### Syntax:

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

### Parameter:

filename: Identifies the path and file name where the image will be saved. It must follow the notation defined in SF_FileSystem.FileNaming.

imagetype: The name of the image type to be created. The following values are accepted: "gif", "jpeg", "png" (default), "svg" and "tiff".

overwrite: Specifies if the destination file can be overwritten (Default = 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

Changes the position of the chart in the current sheet and modifies its width and height. Returns True if resizing was successful.

### Syntax:

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

### Parameter:

xpos, ypos: Specify the new X and Y positions of the chart. If any of these values are omitted or if negative values are provided, the corresponding positions are left unchanged.

width: Specify the new width of the chart. If this argument is omitted or if a negative value is provided, the chart width is left unchanged.

height: Specify the new height of the chart. If this argument is omitted or if a negative value is provided, the chart height is left unchanged.

All arguments are provided as integer values that correspond to 1/100 of a millimeter.

### Beispiel:

##### In Basic

          ' Changes only X and Y position
          oChart.Rezise(1000, 3000)
          ' Changes only the chart width and height
          oChart.Resize(, , 25000, 12500)
          ' Keyword arguments are supported
          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