Nápověda LibreOffice 25.2
Služba Chart poskytuje sadu vlastností a metod pro obsluhu grafů v dokumentech Calcu. Umožňuje:
Přistupovat k objektům s grafy v dokumentech Calcu a měnit jejich vlastnosti.
Vytvářet nové grafy a vkládat je do dokumentu Calcu.
Exportovat grafy jako soubory s obrázkem.
Grafy mohou mít dva různé názvy:
Interní název, který grafu určí LibreOffice, jakmile je objekt s grafem vytvořen (obvykle "Object 1", "Object 2" atd.).
Uživatelem definovaný název, který lze určit po klepnutí pravým tlačítkem na graf a volbou v místní nabídce.
Služba Chart používá pro přístup k objektu s grafem přednostně uživatelem definovaný název. Pokud však neexistuje, použije se interní název.
Před používáním služby Chart je nutné načíst či naimportovat knihovnu ScriptForge pomocí:
Instance služby Chart je vytvořena z instance služby Calc pomocí metodyCharts nebo CreateChart.
V příkladu níže je vytvořena instance služby Chart z existujícího grafu v aktuálním dokumentu Calcu.
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim oDoc as Object, oChart as Object
    Set oDoc = CreateScriptService("Calc")
    Set oChart = oDoc.Charts("Sheet1", "Object 1")
  V následujícím příkladu je vytvořena instance služby Chart tím, že se vytvoří objekt z grafem založeným na datech z oblasti "Sheet1.A1:C10".
    Dim oDoc as Object, oChart as Object
    Set oDoc = CreateScriptService("Calc")
    Set oChart = oDoc.CreateChart("My Chart", "Sheet1", "Sheet1.A1:C10")
  Podrobnosti o argumentech metody CreateChart obsahuje její popis.
V Pythonu lze tyto příklady zapsat následovně:
    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")
  | Název | Pouze pro čtení | Typ | Popis | 
|---|---|---|---|
| ChartType | ne | String | Určuje typ grafu jako řetězec, který může nabývat některé z následujících hodnot: "Pie" (výsečový), "Bar" (řádkový), "Donut" (prstencový), "Column" (sloupcový), "Area" (plošný), "Line" (čárový), "XY" (bodový), "Bubble" (bublinový) nebo "Net" (paprskový). | 
| Deep | ne | Boolean | Je-li True, značí, že graf je trojrozměrný a že každá řada je umístěna ve směru osy Z. Je-li False, jsou řady umístěna pouze ve dvou rozměrech. | 
| Dim3D | ne | Boolean or String | Určuje, zda je graf zobrazen s trojrozměrnými prvky. Pokud je hodnotou řetězec, musí nabývat hodnoty "Bar" (kvádr), "Cylinder" (válec), "Cone" (kužel) nebo "Pyramid" (jehlan). Je-li určena booleovská hodnota True, graf se zobrazí s kvádry. | 
| Exploded | ne | Numeric | Určuje v procentech poloměru, jak jsou výseče posunuty od středu grafu. Týká se pouze výsečových a prstencových grafů. | 
| Filled | ne | Boolean | Je-li True, určuje, že paprskový graf je vyplněný. Týká se pouze paprskových grafů. | 
| Legend | ne | Boolean | Určuje, zda má graf legendu. | 
| Percent | ne | Boolean | Je-li True, řady grafu se poskládají na sebe a součet každé kategorie bude 100 %. Týká se plošných, řádkových, bublinových, sloupcových a paprskových grafů. | 
| Stacked | ne | Boolean | Je-li True, řady grafu se poskládají na sebe. Týká se plošných, řádkových, bublinových, sloupcových a paprskových grafů. | 
| Title | ne | String | Určuje hlavní nadpis grafu. | 
| XTitle | ne | String | Určuje popis osy X. | 
| YTitle | ne | String | Určuje popis osy Y. | 
| XChartObj | ano | Objekt UNO | Vrátí objekt představující graf, který je instancí třídy ScChartObj. | 
| XDiagram | ano | Objekt UNO | Vrátí objekt com.sun.star.chart.XDiagram představující diagram grafu. | 
| XShape | ano | Objekt UNO | Vrátí objekt com.sun.star.drawing.XShape představující tvar grafu. | 
| XTableChart | ano | Objekt UNO | Vrátí objekt com.sun.star.table.XTableChart představující v grafu zobrazená data. | 
Oblast "A1:B6" na listu pojmenovaném "Report" obsahuje následující data:
| A | B | |
|---|---|---|
| 1 | Sample A | Sample B | 
| 2 | 36 | 40 | 
| 3 | 39 | 43 | 
| 4 | 45 | 40 | 
| 5 | 52 | 48 | 
Následující příklady v Basicu a Pythonu ukazují, jak z těchto dat vytvořit čárový graf s legendou.
    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)
  Není nutné, aby byl graf vytvořen na témže listu jako data. Na libovolném existujícím listu aktuálního souboru jej lze vytvořit tím, že uvedete název listu jako druhý argument metody CreateChart.
| Seznam metod služby Chart | |
|---|---|
Uloží graf na zadané umístění jako soubor obrázku. V případě úspěšného vytvoření souboru vrátí True.
chart.ExportToFile(filename: str, imagetype: str = "png", overwrite: bool = False): bool
filename: Určuje cestu a název souboru, kam se má obrázek uložit. Musí odpovídat zápisu SF_FileSystem.FileNaming.
imagetype: Název typu obrázku, který se má vytvořit. Použít lze následující hodnoty: "gif", "jpeg", "png" (výchozí), "svg" a "tiff".
overwrite: Určuje, zda se může cílový soubor přepsat (výchozí = False).
      oChart.ExportToFile("C:\Temp\myChart.svg", ImageType := "svg", Overwrite := True)
    
      chart.ExportToFile(r"C:\Temp\myChart.svg", imagetype="svg", overwrite=True)
    Změní šířku a výšku grafu a jeho umístění na aktuálním listu. V případě úspěšné změny velikosti vrátí True.
chart.Resize([xpos: int], [ypos: int], [width: int], [height: int]): bool
xpos, ypos: Určuje souřadnice X a Y nového umístění grafu. Je-li některá z těchto hodnot vynechána nebo jsou-li zadány záporné hodnoty, umístění se nezmění.
width: Určuje novou šířku grafu. Je-li tento argument vynechán nebo je-li zadána záporná hodnota, šířka grafu se nezmění.
height: Určuje novou výšku grafu. Je-li tento argument vynechán nebo je-li zadána záporná hodnota, výška grafu se nezmění.
Všechny argumenty se zadávají jako celočíselné hodnoty, jednotka odpovídá 1/100 milimetru.
      ' Změní pouze umístění X a Y
      oChart.Rezise(1000, 3000)
      ' Změní pouze šířku a výšku grafu
      oChart.Resize(, , 25000, 12500)
      ' Podporovány jsou názvy argumentů
      oChart.Resize(Width := 25000, Height := 12500)
    
      chart.Rezise(1000, 3000)
      chart.Resize(-1, -1, 20000, 20000)
      chart.Resize(width=25000, height=12500)