Pomoc LibreOffice 25.2
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.
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 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.
Przed użyciem usługi Chart należy załadować lub zaimportować bibliotekę ScriptForge:
Usługa Chart jest tworzona z instancji usługi Calc przy użyciu metody Charts lub CreateChart.
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.
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")
  | 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. | 
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.
    oDoc = CreateScriptService("Calc")
    oChart = oDoc.CreateChart("Samples", "Report", "Report.A1:B6")
    oChart.ChartType = "Line"
    oChart.Legend = True
    oChart.Resize(1000, 1000, 25000, 15000)
  
    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.
| Lista metod w usłudze Chart | |
|---|---|
Zapisuje wykres jako plik obrazu w określonej lokalizacji. Zwraca True, jeśli plik obrazu mógł zostać pomyślnie utworzony.
chart.ExportToFile(filename: str, imagetype: str = "png", overwrite: bool = False): bool
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).
      oChart.ExportToFile("C:\Temp\myChart.svg", ImageType := "svg", Overwrite := True)
    
      chart.ExportToFile(r"C:\Temp\myChart.svg", imagetype="svg", overwrite=True)
    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.
chart.Resize([xpos: int], [ypos: int], [width: int], [height: int]): bool
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.
      ' 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)
    
      chart.Rezise(1000, 3000)
      chart.Resize(-1, -1, 20000, 20000)
      chart.Resize(width=25000, height=12500)