Servizio SFDocuments.Chart

Il servizio Chart fornisce un insieme di proprietà e metodi per gestire i grafici nei documenti di Calc. Con questo servizio potete:

Nomi del grafico

I grafici possono avere due nomi differenti:

note

Il servizio Chart utilizza principalmente il nome personalizzato per accedere a un oggetto di tipo grafico. Se esso non esiste, usa il nome interno.


Invocazione del servizio

Prima di usare il servizio Chart è necessario caricare o importare le librerie ScriptForge:

note

• Le macro in Basic richiedono il caricamento della libreria ScriptForge usando la seguente istruzione:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Gli script in Python richiedono un'importazione dal modulo scriptforge:
from scriptforge import CreateScriptService


Il servizio Chart è invocato da un'istanza del servizio Calc usando il metodo Charts o CreateChart.

In Basic

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

Leggere la descrizione del metodo CreateChart per saperne di più in merito ai suoi argomenti.


In Python

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

Proprietà

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

Oggetto UNO

Restituisce l'oggetto che rappresenta il grafico, che è un'istanza della classe ScChartObj.

XDiagram

Oggetto UNO

Restituisce l'oggetto com.sun.star.chart.XDiagram che rappresenta il diagramma del grafico.

XShape

Oggetto UNO

Restituisce l'oggetto com.sun.star.drawing.XShape che rappresenta la forma del grafico.

XTableChart

Oggetto UNO

Restituisce l'oggetto com.sun.star.table.XTableChart che rappresenta i dati visualizzati nel grafico.


Creazione di un 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.

In Basic

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

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

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.


Metodi

Elenco dei metodi del servizio Chart

ExportToFile

Resize


ExportToFile

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.

Sintassi:

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

Parametri:

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

Esempio:

In Basic

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

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

Resize

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.

Sintassi:

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

Parametri:

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.

note

Tutti gli argomenti sono espressi con valori interi che corrispondono a 1/100 di millimetro.


Esempio:

In Basic

      ' 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)
    
In Python

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

Tutte le routine e gli identificatori Basic di ScriptForge che iniziano con un carattere di sottolineatura "_" sono riservati per uso interno. Non è previsto il loro utilizzo nelle macro in Basic o negli script in Python.


Sosteneteci!