SFDocuments.Chart service

De service Chart heeft een aantal eigenschappen en methoden voor het werken met diagrammen in Calc.Met deze methode is het mogelijk om:

Diagramnaam

Een diagram kan twee verschillende namen hebben:

note

De service Chart gebruikt de door de gebruiker gedefinieerde naam. Als die er niet is, wordt de interne naam gebruikt.


Service aanroep

Voordat de service Chart gebruikt kan worden, moet de bibliotheek ScriptForge eerst worden geladen of geïmporteerd:

note

• Basic macro's kunnen de bibliotheek ScriptForge laden met de instructie:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Python scripts kunnen de module scriptforge importeren met:
from scriptforge import CreateScriptService


Een instantie van de service Chart wordt aangemaakt met de service Calc door de methode Charts of methode CreateChart te gebruiken.

In BASIC

In dit voorbeeld wordt een instantie van een service Chart aangemaakt van een bestaand diagram in het huidige Calc-document:


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

Hier wordt met de service Chart een diagram-object aangemaakt gebaseerd op de gegevens "Sheet1.A1:C10" in het Calc-document.


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

Lees de beschrijving van de methode CreateChart voor een uitleg van de argumenten.


In Python

Dezelfde voorbeelden in Python:


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

Eigenschappen

Naam

AlleenLezen

Type

Beschrijving

ChartType

Nee

String

Specifies the chart type as a string that can assume one of the following values: "Pie", "Bar", "Donut", "Column", "Area", "Line", "XY", "Bubble", "Net".

Deep

Nee

Boolean

When True indicates that the chart is three-dimensional and each series is arranged in the z-direction.

When False series are arranged considering only two dimensions.

Dim3D

Nee

Boolean or String

Specifies if the chart is displayed with 3D elements. If the value is a string, it must be either "Bar", "Cylinder", "Cone" or "Pyramid".

If the boolean True value is specified, then the chart is displayed using 3D bars.

Exploded

Nee

Numeric

Specifies how much pie segments are offset from the chart center as a percentage of the radius. Applicable to pie and donut charts only.

Filled

Nee

Boolean

When True, specifies a filled net chart. Applicable to net charts only.

Legend

Nee

Boolean

Specifies whether or not the chart has a legend.

Percent

Nee

Boolean

When True, chart series are stacked and each category sums up to 100%. Applicable to Area, Bar, Bubble, Column and Net charts.

Stacked

Nee

Boolean

When True, chart series are stacked. Applicable to Area, Bar, Bubble, Column and Net charts.

Title

Nee

String

Specifies the main title of the chart.

XTitle

No

String

Specifies the title of the X axis.

YTitle

Nee

String

Specifies the title of the Y axis.

XChartObj

Ja

UNO-object

Returns the object representing the chart, which is an instance of the ScChartObj class.

XDiagram

Ja

UNO-object

Returns the com.sun.star.chart.XDiagram object representing the diagram of the chart.

XShape

Ja

UNO-object

Returns the com.sun.star.drawing.XShape object representing the shape of the chart.

XTableChart

Ja

UNO-object

Returns the com.sun.star.table.XTableChart object representing the data being displayed in the chart.


Een diagram aanmaken

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

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.

Syntaxis:

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

Parameters:

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

Voorbeeld:

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.

Syntaxis:

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

Parameters:

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.

note

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


Voorbeeld:

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

Alle ScriptForge Basic-routines of variabelen die beginnen met een underscore "_" zijn voor intern gebruik. Gebruik deze niet in een Basic of Python-macro.