Aide LibreOfficeDev 25.8
Le service Chart fournit un ensemble de propriétés et de méthodes pour gérer les diagrammes dans les documents Calc. Avec ce service il est possible de :
Accéder aux objets diagrammes dans les documents Calc et manipuler leurs propriétés.
Créer et insérer de nouveaux diagrammes dans un document Calc.
Exporter les diagrammes comme fichiers d'image.
Les diagrammes peuvent avoir deux noms différents :
Un nom interne donné par LibreOfficeDev dès la création de l'objet diagramme (généralement "Objet 1", "Objet 2" et ainsi de suite).
Un nom défini par l'utilisateur, qui peut être défini en cliquant avec le bouton droit sur le diagramme et en choisissant dans le menu contextuel.
Le service Chart utilise principalement le nom défini par l'utilisateur pour accéder à un objet diagramme. S'il n'existe pas, le nom interne est utilisé.
Avant d'utiliser le service Chart, la bibliothèque ScriptForge doit être chargée ou importée :
Le service Chart est instancié à partir d'une instance de service Calc à l'aide des méthodes Charts ou CreateChart.
L'exemple ci-dessous crée une instance de service Chart à partir d'un diagramme existant dans le document Calc actif :
    GlobalScope.BasicLibraries.LoadLibrary("ScriptForge")
    Dim oDoc as Object, oChart as Object
    Set oDoc = CreateScriptService("Calc")
    Set oChart = oDoc.Charts("Sheet1", "Object 1")
  L'exemple suivant instancie le service Chart en créant un nouvel objet diagramme basé sur les données contenues dans la plage "Sheet1.A1:C10".
    Dim oDoc as Object, oChart as Object
    Set oDoc = CreateScriptService("Calc")
    Set oChart = oDoc.CreateChart("My Chart", "Sheet1", "Sheet1.A1:C10")
  Lisez la description de la méthode CreateChart pour en savoir plus sur ses arguments.
Les exemples ci-dessus peuvent être écrits en Python comme suit :
    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")
  | Nom | Lecture seule | Type | Description | 
|---|---|---|---|
| ChartType | Non | String | Spécifie le type de diagramme sous forme de chaîne pouvant prendre l'une des valeurs suivantes : "Pie", "Bar", "Donut", "Column", "Area", "Line", "XY", "Bubble", "Net ". | 
| Deep | Non | Boolean | Lorsque True indique que le diagramme est en trois dimensions et que chaque série est disposée dans la direction z. Lorsque False, les séries sont organisées en considérant seulement deux dimensions. | 
| Dim3D | Non | Boolean or String | Spécifie si le diagramme est affiché avec des éléments 3D. Si la valeur est une chaîne, elle doit être soit "Bar", "Cylinder", "Cone" ou "Pyramid". Si la valeur booléenne True est spécifiée, le diagramme est affiché à l'aide de barres 3D. | 
| Exploded | Non | Numeric | Spécifie de combien de segments de camembert sont décalés du centre du diagramme en pourcentage du rayon. Applicable aux camemberts et aux diagrammes en anneau uniquement. | 
| Filled | Non | Boolean | Lorsque True, spécifie un diagramme en toile rempli. Applicable aux diagrammes en toile uniquement. | 
| Legend | Non | Boolean | Spécifie si le diagramme a ou non une légende. | 
| Percent | Non | Boolean | Lorsque True, les séries de diagrammes sont empilées et chaque catégorie totalise jusqu'à 100 %. Applicable aux graphiques en aires, à barres, à bulles, à colonnes et en toile. | 
| Stacked | Non | Boolean | Lorsque True, les séries de diagrammes sont empilées. Applicable aux diagrammes en aires, à barres, à bulles, à colonnes et en toile. | 
| Title | Non | String | Spécifie le titre principal du diagramme. | 
| XTitle | Non | String | Spécifie le titre de l'axe X. | 
| YTitle | Non | String | Spécifie le titre de l'axe Y. | 
| XChartObj | Oui | Objet UNO | Renvoie l'objet représentant le diagramme, qui est une instance de la classe ScChartObj . | 
| XDiagram | Oui | Objet UNO | Renvoie l'objet représentant le schéma du diagramme com.sun.star.chart.XDiagram | 
| XShape | Oui | Objet UNO | Renvoie l'objet représentant la forme du diagramme com.sun.star.drawing.XShape. | 
| XTableChart | Oui | Objet UNO | Renvoie l'objet représentant les données affichées dans le diagramme com.sun.star.table.XTableChart. | 
Considérez les données suivantes dans la plage "A1:B6" d'une feuille nommée "Report".
| A | B | |
|---|---|---|
| 1 | Sample A | Sample B | 
| 2 | 36 | 40 | 
| 3 | 39 | 43 | 
| 4 | 45 | 40 | 
| 5 | 52 | 48 | 
Les exemples ci-dessous en Basic et Python montrent comment créer un diagramme linéaire à partir de ces données avec des légendes.
    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)
  Le diagramme n'a pas besoin d'être créé sur la même feuille que celle où se trouvent les données. Il peut être créé sur n'importe quelle feuille existante dans le fichier actuel en spécifiant le nom de la feuille dans le deuxième argument de la méthode CreateChart.
| Liste des méthodes dans le service Chart | |
|---|---|
Enregistre le diagramme en tant que fichier image dans un emplacement spécifié. Renvoie True si le fichier image a pu être créé avec succès.
chart.ExportToFile(filename: str, imagetype: str = "png", overwrite: bool = False): bool
filename : identifie le chemin et le nom du fichier où l'image sera enregistrée. Il doit suivre la notation définie dans SF_FileSystem.FileNaming.
imagetype : le nom du type d'image à créer. Les valeurs suivantes sont acceptées : "gif", "jpeg", "png" (par défaut), "svg" et "tiff".
overwrite : spécifie si le fichier de destination peut être écrasé (par défaut = False).
      oChart.ExportToFile("C:\Temp\myChart.svg", ImageType := "svg", Overwrite := True)
    
      chart.ExportToFile(r"C:\Temp\myChart.svg", imagetype="svg", overwrite=True)
    Modifie la position du diagramme dans la feuille en cours et modifie sa largeur et sa hauteur. Renvoie True si le redimensionnement a réussi.
chart.Resize([xpos: int], [ypos: int], [width: int], [height: int]): bool
xpos, ypos : spécifier les nouvelles positions X et Y du diagramme. Si l'une de ces valeurs est omise ou si des valeurs négatives sont fournies, les positions correspondantes restent inchangées.
width : spécifier la nouvelle largeur du diagramme. Si cet argument est omis ou si une valeur négative est fournie, la largeur du diagramme reste inchangée.
height : spécifier la nouvelle hauteur du diagramme. Si cet argument est omis ou si une valeur négative est fournie, la hauteur du diagramme reste inchangée.
Tous les arguments sont fournis sous forme de valeurs entières qui correspondent à 1/100 de millimètre.
      ' Modifie uniquement les positions X et Y
      oChart.Rezise(1000, 3000)
      ' Modifie uniquement la largeur et la hauteur du diagramme
      oChart.Resize(, , 25000, 12500)
      ' Les arguments de mots clés sont pris en charge
      oChart.Resize(Width := 25000, Height := 12500)
    
      chart.Rezise(1000, 3000)
      chart.Resize(-1, -1, 20000, 20000)
      chart.Resize(width=25000, height=12500)