Spis treści

# Usługa SFDocuments.Chart

Usługa Chart udostępnia zestaw właściwości i metod obsługi wykresów w dokumentach programu Calc. Dzięki tej usłudze możliwe jest:

- Uzyskanie dostępu do obiektów wykresów w dokumentach programu Calc i manipulowanie ich właściwościami.

- Tworzenie i wstawianie nowych wykresów do dokumentu Calc.

- Eksportowanie wykresów jako pliki obrazów.

## Nazwy wykresów

Wykresy mogą mieć dwie różne nazwy:

- Nazwa wewnętrzna nadawana przez LibreOffice zaraz po utworzeniu obiektu wykresu (zwykle „Obiekt 1”, „Obiekt 2” itd.).

- Nazwa użytkownika, którą można zdefiniować, klikając wykres prawym przyciskiem myszy i wybierając Nazwa z menu kontekstowego.

Usługa Chart używa przede wszystkim nazwy zdefiniowanej przez użytkownika, aby uzyskać dostęp do obiektu wykresu. Jeśli nie istnieje, używana jest nazwa wewnętrzna.

## Wywoływanie usługi

Przed użyciem usługi Chart należy załadować lub zaimportować bibliotekę ScriptForge:

• Podstawowe makra wymagają załadowania biblioteki ScriptForge przy użyciu następującej instrukcji:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Skrypty Pythona wymagają importu z modułu scriptforge:
from scriptforge import CreateScriptService

Usługa Chart jest tworzona z instancji usługi Calc przy użyciu metody Charts lub CreateChart.

##### W języku Basic

Poniższy przykład tworzy instancję usługi Chart na podstawie istniejącego wykresu w bieżącym dokumencie Calc:

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

Poniższy przykład ilustruje instancję usługi Chart poprzez utworzenie nowego obiektu wykresu na podstawie danych zawartych w zakresie "Sheet1.A1:C10".

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

Przeczytaj opis metody CreateChart, aby dowiedzieć się więcej o jej argumentach.

##### W języku Python

Powyższe przykłady można zapisać w Pythonie w następujący sposób:

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

## Właściwości

Nazwa | Tylko do odczytu | Typ | Opis
--- | --- | --- | ---
ChartType | Nie | String | Określa typ wykresu jako ciąg znaków, który może przyjmować jedną z następujących wartości: "Pie", "Bar", "Donut", "Column", "Area", "Line", "XY", "Bubble", "Net ".
Deep | Nie | Boolean | Gdy True wskazuje, że wykres jest trójwymiarowy, a każda seria jest ułożona w kierunku osi Z. Gdy serie False są ułożone z uwzględnieniem tylko dwóch wymiarów.
Dim3D | Nie | Boolean or String | Określa, czy wykres jest wyświetlany z elementami 3D. Jeśli wartością jest ciąg znaków, musi to być "Bar", "Cylinder", "Cone" lub "Pyramid". Jeśli zostanie podana wartość logiczna True, wówczas wykres zostanie wyświetlony w formie słupków 3D.
Exploded | Nie | Numeric | Określa, jak bardzo segmenty koła są odsunięte od środka wykresu jako procent promienia. Dotyczy tylko wykresów kołowych i pierścieniowych.
Filled | Nie | Boolean | Gdy True, określa wypełniony wykres sieciowy. Dotyczy wyłącznie wykresów sieciowych.
Legend | Nie | Boolean | Określa, czy wykres ma legendę.
Percent | Nie | Boolean | Jeśli True, serie wykresów są kumulowane, a suma każdej kategorii wynosi 100%. Ma zastosowanie do wykresów warstwowych, słupkowych, bąbelkowych, kolumnowych i sieciowych.
Stacked | Nie | Boolean | Jeśli True, serie wykresów są kumulowane. Ma zastosowanie do wykresów warstwowych, słupkowych, bąbelkowych, kolumnowych i sieciowych.
Title | Nie | String | Określa główny tytuł wykresu.
XTitle | Nie | String | Określa tytuł osi X.
YTitle | Nie | String | Określa tytuł osi Y.
XChartObj | Tak | Obiekt UNO | Zwraca obiekt reprezentujący wykres będący instancją klasy ScChartObj.
XDiagram | Tak | Obiekt UNO | Zwraca obiekt com.sun.star.chart.XDiagram reprezentujący schemat wykresu.
XShape | Tak | Obiekt UNO | Zwraca obiekt com.sun.star.drawing.XShape reprezentujący kształt wykresu.
XTableChart | Tak | Obiekt UNO | Zwraca obiekt com.sun.star.table.XTableChart reprezentujący dane wyświetlane na wykresie.

## Tworzenie wykresu

Rozważ następujące dane w zakresie „A1:B6” arkusza o nazwie „Report”.

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

Poniższe przykłady w języku Basic i Python pokazują, jak utworzyć wykres liniowy z tych danych wraz z legendami.

##### W języku Basic

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

##### W języku Python

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

Wykresu nie trzeba tworzyć w tym samym arkuszu, w którym znajdują się dane. Można go utworzyć w dowolnym istniejącym arkuszu w bieżącym pliku, podając nazwę arkusza w drugim argumencie metody CreateChart.

## Metody

Lista metod w usłudze Chart
ExportToFile | Resize

## ExportToFile

Zapisuje wykres jako plik obrazu w określonej lokalizacji. Zwraca True, jeśli plik obrazu mógł zostać pomyślnie utworzony.

### Składnia:

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

### Parametry:

filename: określa ścieżkę i nazwę pliku, w którym obraz zostanie zapisany. Musi być zgodny z notacją zdefiniowaną w SF_FileSystem.FileNaming.

imagetype: nazwa typu obrazu, który ma zostać utworzony. Akceptowane są następujące wartości: „gif”, „jpeg”, „png” (domyślnie), „svg” i „tiff”.

overwrite: określa, czy plik docelowy może zostać nadpisany (domyślnie = False).

### Przykład:

##### W języku Basic

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

##### W języku Python

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

## Resize

Zmienia położenie wykresu w bieżącym arkuszu oraz modyfikuje jego szerokość i wysokość. Zwraca wartość True, jeśli zmiana rozmiaru zakończyła się pomyślnie.

### Składnia:

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

### Parametry:

xpos, ypos: określ nowe pozycje X i Y wykresu. W przypadku pominięcia którejkolwiek z tych wartości lub podania wartości ujemnych odpowiednie pozycje pozostają niezmienione.

width: określ nową szerokość wykresu. Jeśli ten argument zostanie pominięty lub zostanie podana wartość ujemna, szerokość wykresu pozostanie niezmieniona.

height: określ nową wysokość wykresu. Jeżeli ten argument zostanie pominięty lub zostanie podana wartość ujemna, wysokość wykresu pozostanie niezmieniona.

Wszystkie argumenty podawane są jako wartości całkowite odpowiadające 1/100 milimetra.

### Przykład:

##### W języku Basic

          ' Zmienia tylko położenie X i Y
          oChart.Rezise(1000, 3000)
          ' Zmienia tylko szerokość i wysokość wykresu
          oChart.Resize(, , 25000, 12500)
          ' Obsługiwane są argumenty słów kluczowych
          oChart.Resize(Width := 25000, Height := 12500)

##### W języku Python

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

Wszystkie podstawowe procedury lub identyfikatory ScriptForge poprzedzone znakiem podkreślenia „_” są zarezerwowane do użytku wewnętrznego. Nie należy ich używać w makrach Basic ani skryptach Pythona.

Tematy pokrewne

Usługa SFDocuments.Calc