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

Specificeert het diagramtype als een tekenreeks die een van de volgende waarden kan aannemen: "Pie", "Bar", "Donut", "Column", "Area", "Line", "XY", "Bubble", "Net ".

Deep

Nee

Boolean

Wanneer True aangeeft dat de grafiek driedimensionaal is en dat elke reeks in de z-richting is gerangschikt.

Indien False worden reeksen gerangschikt, rekening houdend met slechts twee dimensies.

Dim3D

Nee

Boolean or String

Specificeert of de grafiek wordt weergegeven met 3D-elementen. Als de waarde een tekenreeks is, moet deze "Bar", "Cylinder", "Cone" of "Pyramid" zijn.

Als de booleaanse waarde True is opgegeven, wordt de grafiek weergegeven met 3D-balken.

Exploded

Nee

Numeric

Specificeert hoeveel cirkelsegmenten worden verschoven ten opzichte van het middelpunt van de grafiek als een percentage van de straal. Alleen van toepassing op cirkel- en ringdiagrammen.

Filled

Nee

Boolean

Indien True, specificeert dit een gevuld netdiagram. Alleen van toepassing op netdiagrammen.

Legend

Nee

Boolean

Geeft aan of het diagram al dan niet een legenda heeft.

Percent

Nee

Boolean

Indien True, worden diagramreeksen gestapeld en telt elke categorie op tot 100%. Van toepassing op oppervlakte-, staaf-, bel-, kolom- en netdiagrammen.

Stacked

Nee

Boolean

Indien True, worden diagramreeksen gestapeld. Van toepassing op oppervlakte-, staaf-, bel-, kolom- en netdiagrammen.

Title

Nee

String

Specificeert de hoofdtitel van het diagram.

XTitle

Nee

String

Specificeert de titel van de X-as.

YTitle

Nee

String

Specificeert de titel van de Y-as.

XChartObj

Ja

UNO-object

Retourneert het object dat de grafiek vertegenwoordigt, wat een instantie is van de klasse ScChartObj .

XDiagram

Ja

UNO-object

Retourneert het com.sun.star.chart.XDiagram-object dat het diagram van de grafiek vertegenwoordigt.

XShape

Ja

UNO-object

Retourneert het com.sun.star.drawing.XShape-object dat het vorm van de grafiek vertegenwoordigt.

XTableChart

Ja

UNO-object

Retourneert het com.sun.star.table.XTableChart-object dat de gegevens vertegenwoordigt die in de grafiek worden weergegeven.


Een diagram aanmaken

Overweeg de volgende gegevens in het bereik "A1:B6" van een blad met de naam "Rapport".

A

B

1

Sample A

Sample B

2

36

40

3

39

43

4

45

40

5

52

48


De onderstaande voorbeelden in Basic en Python laten zien hoe u een lijndiagram kunt maken van deze gegevens met legenda's.

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

Het diagram hoeft niet in hetzelfde blad te worden gemaakt als waar de gegevens zich bevinden. Het kan in elk bestaand blad in het huidige bestand worden gemaakt door de bladnaam op te geven in het tweede argument van de methode CreateChart.


Methoden

Lijst met methoden in de Chart-service

ExportToFile

Resize


ExportToFile

Slaat de grafiek op als een afbeeldingsbestand op een opgegeven locatie. Retourneert True als het afbeeldingsbestand met succes kon worden gemaakt.

Syntaxis:

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

Parameters:

filename: Identificeert het pad en de bestandsnaam waar de afbeelding wordt opgeslagen. Het moet de notatie volgen die is gedefinieerd in SF_FileSystem.FileNaming.

imagetype: De naam van het te maken afbeeldingstype. De volgende waarden worden geaccepteerd: "gif", "jpeg", "png" (standaard), "svg" en "tiff".

overwrite: Specificeert of het doelbestand kan worden overschreven (Standaard = 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

Wijzigt de positie van het diagram in het huidige blad en wijzigt de breedte en hoogte. Retourneert True als het wijzigen van de grootte is gelukt.

Syntaxis:

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

Parameters:

xpos, ypos: Geef de nieuwe X- en Y-posities van de grafiek op. Als een van deze waarden wordt weggelaten of als er negatieve waarden worden opgegeven, blijven de overeenkomstige posities ongewijzigd.

width: Geef de nieuwe breedte van het diagram op. Als dit argument wordt weggelaten of als een negatieve waarde wordt opgegeven, blijft de grafiekbreedte ongewijzigd.

height: Geef de nieuwe hoogte van de grafiek op. Als dit argument wordt weggelaten of als een negatieve waarde wordt opgegeven, blijft de grafiekhoogte ongewijzigd.

note

Alle argumenten worden geleverd als gehele waarden die overeenkomen met 1/100 van een millimeter.


Voorbeeld:

In BASIC

      ' Verandert alleen de X- en Y-positie
      oChart.Rezise(1000, 3000)
      ' Wijzigt alleen de breedte en hoogte van de grafiek
      oChart.Resize(, , 25000, 12500)
      ' Zoekwoordargumenten worden ondersteund
      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.


Help ons, alstublieft!