Innhald
Innhaldsliste 🔎︎

# Tenesta ScriptForge.Chart

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

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

The following example instantiate the Chart service by creating a new chart object based on the data contained in the range "Sheet1.A1:C10".

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

Read the CreateChart method description to learn more about its arguments.

##### I Python

The examples above can be written in Python as follows:

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

## Properties

Name | Readonly | Type | Description
ChartType | No | 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 | No | 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 | No | 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 | No | 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 | No | Boolean | When True, specifies a filled net chart. Applicable to net charts only.
Legend | No | Boolean | Specifies whether or not the chart has a legend.
Percent | No | Boolean | When True, chart series are stacked and each category sums up to 100%. Applicable to Area, Bar, Bubble, Column and Net charts.
Stacked | No | Boolean | When True, chart series are stacked. Applicable to Area, Bar, Bubble, Column and Net charts.
Title | No | String | Specifies the main title of the chart.
XTitle | No | String | Specifies the title of the X axis.
YTitle | No | String | Specifies the title of the Y axis.
XChartObj | Yes | UNO Object | Returns the object representing the chart, which is an instance of the ScChartObj class.
XDiagram | Yes | UNO Object | Returns the com.sun.star.chart.XDiagram object representing the diagram of the chart.
XShape | Yes | UNO Object | Returns the com.sun.star.drawing.XShape object representing the shape of the chart.
XTableChart | Yes | UNO Object | Returns the com.sun.star.table.XTableChart object representing the data being displayed in the chart.

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