Guida di LibreOffice 25.2
Il servizio Chart fornisce un insieme di proprietà e metodi per gestire i grafici nei documenti di Calc. Con questo servizio potete:
Accedere agli oggetti di tipo grafico nei documenti di Calc e manipolare le loro proprietà.
Creare e inserire nuovi grafici in un documento di Calc.
Esportare i grafici in file di tipo immagine.
I grafici possono avere due nomi differenti:
Un nome interno assegnato da LibreOffice nel momento in cui il grafico è stato creato (di solito "Oggetto 1", "Oggetto 2" e così via).
Un nome personalizzato, che potete definire facendo clic col pulsante destro del mouse sul grafico e selezionando nel menu contestuale.
Il servizio Chart utilizza principalmente il nome personalizzato per accedere a un oggetto di tipo grafico. Se esso non esiste, usa il nome interno.
Prima di usare il servizio Chart è necessario caricare o importare le librerie ScriptForge:
Il servizio Chart è invocato da un'istanza del servizio Calc usando il metodo Charts o CreateChart.
L'esempio sottostante crea un'istanza del servizio Chart da un grafico esistente nel documento corrente di Calc:
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim oDoc as Object, oChart as Object
    Set oDoc = CreateScriptService("Calc")
    Set oChart = oDoc.Charts("Sheet1", "Object 1")
  L'esempio seguente istanzia il servizio Chart creando un nuovo oggetto di tipo grafico basato sui dati contenuti nell'intervallo "Sheet1.A1:C10".
    Dim oDoc as Object, oChart as Object
    Set oDoc = CreateScriptService("Calc")
    Set oChart = oDoc.CreateChart("My Chart", "Sheet1", "Sheet1.A1:C10")
  Leggere la descrizione del metodo CreateChart per saperne di più in merito ai suoi argomenti.
Gli esempi qui sopra possono essere scritti in Python come segue:
    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")
  | Nome | Sola lettura | Tipo | Descrizione | 
|---|---|---|---|
| ChartType | No | String | Specifica il tipo di grafico in formato stringa che può assumere uno dei seguenti valori: "Pie", "Bar", "Donut", "Column", "Area", "Line", "XY", "Bubble", "Net". | 
| Deep | No | Boolean | Se impostato suTrue indica che il grafico è tridimensionale e ogni serie è disposta nella direzione z. Se è impostato su False le serie sono disposte considerando solamente due dimensioni. | 
| Dim3D | No | Boolean or String | Specifica se il grafico è visualizzato con elementi 3D. Se il valore è una stringa deve essere uno tra "Bar", "Cylinder", "Cone" o "Pyramid". Se è specificato il valore logico True, il grafico sarà visualizzato usando delle barre 3D. | 
| Exploded | No | Numeric | Specifica quante fette della torta si discostano dal centro del grafico, in formato di percentuale del raggio. È applicabile solo ai grafici di tipo a torta e ciambella. | 
| Filled | No | Boolean | Se impostato su True, indica un grafico a rete pieno. È applicabile solo ai grafici a rete. | 
| Legend | No | Boolean | Specifica se il grafico possiede o no una legenda. | 
| Percent | No | Boolean | Se impostato su True, le serie del grafico sono impilate e ogni categoria viene sommata fino al massimo del 100%. È applicabile ai grafici ad area, barre, bolle, colonne e rete. | 
| Stacked | No | Boolean | Se impostato su True, le serie del grafico sono impilate. È applicabile ai grafici ad area, barre, bolle, colonne e rete. | 
| Title | No | String | Specifica il titolo principale del grafico. | 
| XTitle | No | String | Specifica il titolo dell'asse X. | 
| YTitle | No | String | Specifica il titolo dell'asse Y. | 
| XChartObj | Sì | Oggetto UNO | Restituisce l'oggetto che rappresenta il grafico, che è un'istanza della classe ScChartObj. | 
| XDiagram | Sì | Oggetto UNO | Restituisce l'oggetto com.sun.star.chart.XDiagram che rappresenta il diagramma del grafico. | 
| XShape | Sì | Oggetto UNO | Restituisce l'oggetto com.sun.star.drawing.XShape che rappresenta la forma del grafico. | 
| XTableChart | Sì | Oggetto UNO | Restituisce l'oggetto com.sun.star.table.XTableChart che rappresenta i dati visualizzati nel grafico. | 
Ipotizzate i seguenti dati nell'intervallo "A1:B6" di un foglio denominato "Report".
| A | B | |
|---|---|---|
| 1 | Sample A | Sample B | 
| 2 | 36 | 40 | 
| 3 | 39 | 43 | 
| 4 | 45 | 40 | 
| 5 | 52 | 48 | 
Gli esempi sottostanti in Basic e Python illustrano come creare un grafico a linea da questi dati, con una legenda.
    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)
  Non è necessario creare il grafico nello stesso foglio in cui si trovano i dati. Potete crearlo in qualsiasi foglio esistente nel file corrente specificando il nome del foglio nel secondo argomento del metodo CreateChart.
| Elenco dei metodi del servizio Chart | |
|---|---|
Salva il grafico in un file di immagine all'interno del percorso specificato. Restituisce True se la creazione del file con l'immagine va a buon fine.
chart.ExportToFile(filename: str, imagetype: str = "png", overwrite: bool = False): bool
filename: identifica il percorso e il nome del file in cui sarà salvata l'immagine. Deve rispettare la notazione definita in SF_FileSystem.FileNaming.
imagetype: il nome del tipo di immagine da creare. Sono ammessi i seguenti valori: "gif", "jpeg", "png" (predefinito), "svg" e "tiff".
overwrite: specifica se il file di destinazione può essere sovrascritto (predefinito = False).
      oChart.ExportToFile("C:\Temp\myChart.svg", ImageType := "svg", Overwrite := True)
    
      chart.ExportToFile(r"C:\Temp\myChart.svg", imagetype="svg", overwrite=True)
    Cambia la posizione del grafico all'interno del foglio corrente e ne modifica larghezza e altezza. Restituisce True se il ridimensionamento va a buon fine.
chart.Resize([xpos: int], [ypos: int], [width: int], [height: int]): bool
xpos, ypos: specifica le nuove posizioni delle coordinate X e Y del grafico. Se uno di questi valori viene omesso o se vengono forniti dei valori negativi, le posizioni corrispondenti rimangono immutate.
width: specifica la nuova larghezza del grafico. Se questo argomento viene omesso o se viene fornito un valore negativo, la larghezza del grafico rimane immutata.
height: specifica la nuova altezza del grafico. Se questo argomento viene omesso o se viene fornito un valore negativo, l'altezza del grafico rimane immutata.
Tutti gli argomenti sono espressi con valori interi che corrispondono a 1/100 di millimetro.
      ' Modifica solo le posizioni X e Y
      oChart.Rezise(1000, 3000)
      ' Modifica solo la larghezza e l'altezza del grafico
      oChart.Resize(, , 25000, 12500)
      ' Sono supportati argomenti con parole chiave
      oChart.Resize(Width := 25000, Height := 12500)
    
      chart.Rezise(1000, 3000)
      chart.Resize(-1, -1, 20000, 20000)
      chart.Resize(width=25000, height=12500)