Innhald
Innhaldsliste 🔎︎

# SFDocuments.Chart-tenesta

Teenesta Chart (diagram) leverer eit sett eigenskapar og metodar for å handsama diagram i Calc-dokument. Med denne tenesta er det råd å:

- Få tilgang til diagram-objekt i Calc-dokument og endra eigenskapane deira.

- Laga og setja inn nye diagram i eit Calc-dokument.

- Eksportera diagram som biletfiler.

## Diagramnamn

Diagramma kan ha to ulike namn:

- Eit internt namn gjeve av LibreOffice så snart diagram-objektet er laga (til vanleg «Objekt 1», «Objekt 2» og så vidare).

- Eit brukardefinert namn som kan setjast ved å høgreklikka på diagrammet og velja Namn i sprettoppmenyen.

Tenesta Chart (diagram) brukar primært det brukardefinerte namnet for å få tilgang til eit diagram-objekt. Viss det ikkje finst, vert det interne namnet brukt.

## Oppkall av teneste

Før du brukar Chart-tenesta, må ScriptForge-biblioteket lastast inn eller importerast:

• Grunnleggjande makroar krev innlasting av biblioteket ScriptForge ved hjelp av denne setninga:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-skript krev import frå scriptforge-modulen:
from scriptforge import CreateScriptService

Tenesta Chart (diagram) vert starta frå ei teneste i Calc med ein av metodane Charts (diagram) eller CreateChart (lag_diagram).

##### I Basic

Eksemplet nedanfor lagar ein tenesteførekomst av Chart (diagram) frå eit diagram som finst frå før i det gjeldande Calc-dokumentet:

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

Det neste eksempelet set opp tenesta Chart ved å laga eit nytt diagram-objekt basert på dataa 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")

Les metodebeskrivinga CreateChart for å læra meir om argumenta brukte i metoden.

##### I Python

Eksempelet ovanfor kan skrivast slik i 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")

## Eigenskapar

Namn | Skriveverna | Type | Beskriving
--- | --- | --- | ---
ChartType | Nei | String | Gjev diagramtypen som ein streng som kan ha éin av desse verdiane: «kake», «stolpe», «smultring», «kolonne», «område», «linje», «XY», «boble», «nett».
Deep | Nei | Boolean | Viss Sann, indikerer dette at diagrammet er tredimensjonalt og kvar rad er ordna i z-retninga. Viss Usann, vert serien sett opp med berre to dimensjonar.
Dim3D | Nei | Boolean or String | Bestemmer om diagrammet skal visast med 3D-element. Vi9ss verdien er ein streng, må han anten vera "Bar", "Cylinder", "Cone" eller "Pyramid". Viss den boolske verdien Sann er spesifisert, vert diagrammet vist med 3D-stolpar.
Exploded | Nei | Numeric | Spesifiserer kor mykje kakestykka er forskove frå diagramsenteret som ein prosentdel av radiusen. Gjeld berre for kake- og smultringdiagram.
Filled | Nei | Boolean | Når Sann, spesifiserer dette eit utfylt nett-diagram. Gjeld berre nett-diagram.
Legend | Nei | Boolean | Spesifiserer om diagrammet har ei forklaring eller ikkje.
Percent | Nei | Boolean | Når Sann, vert diagramseriane stapla og kvar kategori vert summert opp til 100 %. Gjeld diagramma område, stolpe, boble, kolonne og nett.
Stacked | Nei | Boolean | Når Sann, vert diagramseriane stapla. Gjeld diagramma område, stolpe, boble, kolonne og nett.
Title | Nei | String | Spesifiserer hovudtittelen på diagrammet.
XTitle | Nei | String | Spesifiserer tittelen på X-aksen.
YTitle | Nei | String | Spesifiserer tittelen på Y-aksen.
XChartObj | Ja | UNO-objekt | Returnerer objektet som representerer diagrammet, som er ein førekomst av klassen ScChartObj.
XDiagram | Ja | UNO-objekt | Returnerer objektet com.sun.star.chart.XDiagram som representerer diagrammet til diagramobjektet.
XShape | Ja | UNO-objekt | Returnerer objektet com.sun.star.drawing.XShape som representerer forma på diagrammet.
XTableChart | Ja | UNO-objekt | Returnerer objektet com.sun.star.table.XTableChart som representerer dataa som vert viste i diagrammet.

## Laga eit diagram

Sjå på dataa i området "A1:B6" i arket "Rapport".

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

Eksempla nedanfor i Basic og Python viser korleis du kan laga eit linjediagram frå desse dataa med forklaringar.

##### 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 treng ikkje lagast i det same arket som dataa er frå. Det kan setjast opp i eit vilkårleg ark i den gjeldande fila ved å skriva inn arknamnet som det andre argumentet i metoden CreateChart (lag diagram).

## Metodar

Liste over metodar i tenesta Chart (diagram)
ExportToFile | Resize

## ExportToFile

Lagrar diagrammet som ei biletfil i den spesifiserte plasseringa. Returnerer Sann viss opprettinga av biletfila lukkast.

### Syntaks:

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

### Parametrar:

filnamn: Identifiserer stien og filnamnet der biletet vert lagra. Det må følgja notasjonen som er definert i SF_FileSystem.FileNaming.

bilettype: Namnet på den bilettypen som skal lagast. Desse verdiane vert godtekne: "gif", "jpeg", "png" (standard), "svg" og "tiff".

overskriv: Spesifiserer om målfila kan overskrivast (standard = Usann).

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

Endrar plasseringa av diagrammet i det gjeldande arket og endrar breidda og høgda på det. Returnerer Sann viss endringa var vellukka.

### Syntaks:

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

### Parametrar:

xpos, ypos: Gjev dei nye x- og y-posisjonane til diagrammet. Viss nokre av desse verdiane manglar eller er negative, vert dei tilsvarande plasseringane ikkje endra.

breidd: Spesifiser den nye breidda på diagrammet. Viss dette argumentet vert sløyfa eller er negativt, vert diagrammet ikkje endra.

høgd: Spesifiser den nye høgda på diagrammet. Viss dette argumentet vert sløyfa eller er negativt, vert diagrammet ikkje endra.

Alle argumenta vert gjevne som heiltal som svarar til 1/100 av ein millimeter.

### Eksempel:

##### I Basic

          ' Endrar berre X- og Y-posisjonane
          oChart.Rezise(1000, 3000)
          ' Endrar berre høgda og breidda på diagrammet
          oChart.Resize(, , 25000, 12500)
          ' Nøkkelordargument vert støtta
          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-rutinane og -identifikatorane som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.

Liknande emne

SFDocuments.Calc