Indhold
Indholdsfortegnelse 🔎︎

# Tjenesten ScriptForge.Chart

Tjenesten Chart (diagram) leverer et sæt egenskaber og metoder til at håndtere diagrammer i Calc-dokumenter. Med denne tjeneste er det muligt at:

- Tilgå diagram-objekter i Calc-dokumenter og manipuler deres egenskaber.

- Opret og indsæt nye diagrammer i et Calc-dokument.

- Eksportere diagrammer som billedfiler.

## Diagramnavne

Diagrammer kan have to forskellige navne:

- Et internt navn givet af LibreOffice gå snart diagram-objektet (sædvanligvis "Objekt 1", "Objekt 2" og så videre).

- Et brugerdefineret navn, som kan defineres ved at højreklikke på diagrammet og vælge Navn i kontekstmenuen.

Tjenesten Chart (diagram) bruger primært det brugerdefinerede navn til at tilgå et diagram-objekt. Hvis det ikke eksisterer, bruges det interne navn.

## Kald af tjeneste

Tjenesten Chart (diagram) instantieres fra en tjenesteforekomst af Calc med en af metoderne Charts (diagrammer) eller CreateChart (opret_diagram).

##### I Basic

Eksemplet herunder opretter en tjenesteforekomst af Chart (diagram) fra et eksisterende diagram i det aktuelle Calc-dokument:

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

Det følgende eksempel instantierer tjenesten Chart (diagram) ved at oprette et nyt diagram-objekt baseret på data indeholdt i området "Sheet1.A1:C10".

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

Læs metodebeskrivelsen CreateChart (opret_diagram) for at få mere at at vide om dens argumenter.

##### I Python

Eksemplerne herunder kan skrives i Python som følger:

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

## Egenskaber

Navn | Skrivebeskyttet | Type | Beskrivelse
ChartType | No | String | Angiver diagramtypen som en streng, der kan antage en af følgende værdier: "Lagkage", "Bjælke", "Donut", "Kolonne", "Område", "Linje", "XY", "Boble", "Net".
Deep | No | Boolean | Når True (sand) påpeges, at diagrammet er tredimensionelt og hver serie er arrangeret på z-aksen. Når False (falsk), arrangeres serien betragtet med kun to dimensioner.
Dim3D | No | Boolean or String | Angiver, om diagrammet vises med 3D-elementer. Hvis værdien er en streng, skal den være enten "Bjælke", "Cylinder", "Kegle" eller "Pyramide". Hvis den boolske værdi True (sand) er angivet, vises diagrammet med 3D-bjælker.
Exploded | No | Numeric | Angiver hvor meget lagkagestykkerne er forskudt fra diagrammets centrum som en procentdel af radius. Gælder kun lagkage- og donut-diagrammer.
Filled | No | Boolean | Når True (sand), angives et udfyldt net-diagram. Gælder kun net-diagrammer.
Legend | No | Boolean | Angiver, om diagrammet har en forklaring eller ej.
Percent | No | Boolean | Når True (sand), stables diagramserierne og hver kategori opsummeres til 100%. Gælder Område-, Bjælke-, Boble-, Kolonne- og Net-diagrammer.
Stacked | No | Boolean | Når True (sand), er serierne stablede. Gælder Område-, Bjælke-, Boble-, Kolonne- og Net-diagrammer.
Title | No | String | Angiver diagrammets hovedtitel.
XTitle | No | String | Angiver x-aksens titel.
YTitle | No | String | Angiver y-aksens titel.
XChartObj | Yes | UNO-objekt | Returnerer objektet, der repræsenterer diagrammet, som er en forekomst af klassen ScChartObj.
XDiagram | Yes | UNO-objekt | Returnerer objektet com.sun.star.chart.XDiagram, der repræsenterer diagrammet over diagrammet.
XShape | Yes | UNO-objekt | Returnerer objektet com.sun.star.drawing.XShape, der repræsenterer diagrammets form.
XTableChart | Yes | UNO-objekt | Returnerer objektet com.sun.star.table.XTableChart, der repræsenterer de data, der vises i diagrammet.

## Oprettelse af et diagram

Betragt følgende data i området "A1:B6" på et ark kaldet "Rapport".

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

Eksemplerne herunder i Basic og Python viser, hvordan der oprettes et linjediagram fra disse data med forklaringer.

##### I Basic

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

##### I Python

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

Diagrammet skal ikke nødvendigvis oprettes på det ark, hvor data er placeret. Det kan oprettes på et vilkårligt ark i den aktuelle fil ved at angive arknavnet i det andet argument i metoden CreateChart (opret_diagram).

## Metoder

Liste over metoder i tjenesten Chart (diagram)
ExportToFile | Resize

## ExportToFile

Gemmer diagrammet som en billedfil på en angivet placering. Returnerer True (sand), hvis det lykkedes at oprette billedfilen.

### Syntaks:

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

### Parametre:

filnavn: Identificerer stien og filnavnet, hvor billedet bliver gemt. Det skal følge notationen, som er defineret i SF_FileSystem.FileNaming.

billedtype: Navnet på den billedtype, der skal oprettes. Følgende værdier accepteres: "gif", "jpeg", "png" (standard), "svg" og "tiff".

overskriv: Angiver, om målfilen kan overskrives (Standard = False (falsk)).

### Eksempel:

##### I Basic

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

##### I Python

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

## Resize

Ændrer placeringen af diagrammet på det aktuelle ark og modificerer det bredde og højde. Returnerer True (sand), hvis størrelsesændringen lykkedes.

### Syntaks:

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

### Parametre:

xpos, ypos: Angiv diagrammets nye x- og y-positioner. Hvis nogen af disse værdier udelades eller der angives negative værdier, efterlades de tilsvarende værdier uændrede.

bredde: Angiv diagrammets nye bredde. Hvis dette argument udelades eller der angives en negativ værdi, efterlades diagrammet uændret.

højde: Angiv diagrammets nye højde. Hvis dette argument udelades eller der angives en negativ værdi, efterlades diagramhøjden uændret.

Alle argumenter angives som heltalsværdier, der svarer til 1/100 af en millimeter.

### Eksempel:

##### I Basic

          ' Ændrer kun x- og y-positionerne
          oChart.Rezise(1000, 3000)
          ' Ændrer kun diagrammets bredde og højde
          oChart.Resize(, , 25000, 12500)
          ' Nøgleordsargumenter understøttes
          oChart.Resize(Width := 25000, Height := 12500)

##### I Python

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

Alle ScriptForge Basic-rutiner eller identifikatorer, der er indledet med et understreget tegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.

Relaterede emner

SFDocuments.Calc