FAQ LibreOffice et Apache OpenOfficeConsultez toutes les FAQ
Nombre d'auteurs : 10, nombre de questions : 359, dernière mise à jour : 15 juillet 2017 Ajouter une question
Bienvenue sur la FAQ, elle a été réalisée pour répondre aux questions concernant les suites bureautiques Apache OpenOffice (AOO) et LibreOffice (LibO).
Si vous souhaitez participer pour l'améliorer, pour proposer vos contributions ou si vous constatez des erreurs dans cette page, n'hésitez-pas !!! Participez.
Il existe plusieurs types de graphiques :
- LineDiagram (Linéaires) ;
- PieDiagram (Secteurs) ;
- AreaDiagram (Surfaces) ;
- BarDiagram (Barres) ;
- XYDiagram (Nuages de points) ;
Description de la méthode addNewByName:
.addNewByName(aName ,aRect ,aRanges ,bColumnHeaders , bRowHeaders)
aName permet de nommer le graphique.
aRect Spécifie la position et les dimensions du graphique.
aRanges Spécifie la plage source du graphique.
bColumnHeaders: La 1ere ligne de la source est utilisée pour définir les étiquettes si la valeur True est attribuée.
bRowHeaders: La 1ere colonne de la source est utilisée pour définir les étiquettes si la valeur True est attribuée.
Consultez l'API Guide pour plus d'informations.
Cet exemple montre comment créer un graphique type XYDiagram dans la 2eme feuille du classeur. La source de données est dans la 1ere feuille.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | Sub CreationGraphique Dim oDoc As Object Dim Rect As New com.sun.star.awt.Rectangle Dim Source(0) As New com.sun.star.table.CellRangeAddress Dim oCharts As Object , oChart As Object oDoc = ThisComponent 'Le graphique sera positionné dans la 2eme feuille du classeur oCharts = oDoc.Sheets(1).Charts '--- Spécfie la position et les dimensions du graphique --- Rect.X = 1000 'horizontal Rect.Y = 500 'vertical Rect.Width = 24000 'Largeur Rect.Height = 13000 'Hauteur '---------------------------------------------------------- '--- Spécifie la source du graphique --- 'Les données sont dans la plage A1:D30 'La première colonne correspond à l'axe des abscisses (une série de dates par exemple) 'Les autres colonnes contiennent les valeurs d'ordonnées 'La première ligne contient les étiquettes des séries Source(0).Sheet = 0 '1ere feuille du graphique Source(0).StartColumn = 0 'Ligne 1 Source(0).StartRow = 0 'Colonne A Source(0).EndColumn = 3 'Colonne D Source(0).EndRow = 29 'Ligne 30 |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | 'Création du graphique oCharts.addNewByName("MonGraphique",Rect ,Source(),True , True) 'Place le graphique dans la feuille de calcul oChart = oCharts.getByName("MonGraphique").EmbeddedObject With oChart 'Type de graphique (Scatters) .Diagram = oChart.createInstance("com.sun.star.chart.XYDiagram") 'Lissage des lignes (0: pas de lissage, 1: spline cubique, 2: spline B) oChart.Diagram.SplineType = 0 'Change le symbole des points oChart.Diagram.SymbolType = com.sun.star.chart.ChartSymbolType.SYMBOL1 'Modifie la couleur de fond du graphique .Diagram.wall.FillColor =RGB(150,150,150) 'Spécifie la valeur maxi de l'étiquette des ordonnées .Diagram.YAxis.Max = 6000 'Attribue un titre à l'axe des abscisses .Diagram.HasXAxisTitle = True .Diagram.YAxisTitle.string = "Les valeurs" 'Attribue un titre à l'axe des ordonnées .Diagram.HasYAxisTitle = True .Diagram.XAxisTitle.string = "Dates" 'La première ligne contient les étiquettes des séries .DataSourceLabelsInFirstColumn = False .DataSourceLabelsInFirstRow = True 'Roration des étiquettes pour l'axe des abscisses .Diagram.XAxis.TextRotation = 9000 '90 degrés 'redéfinit la taille des étiquettes pour les abscisses et les ordonnées .Diagram.YAxis.CharHeight = 4 .Diagram.XAxis.CharHeight = 4 'Attribue un titre au graphique puis un couleur à la chaîne de caractères .Title.String = "Le titre du graphique" .Title.CharColor = RGB(200,0,0) End With oDoc.Sheets(0).getCellByPosition(0,0).String = "MonGraphique" End Sub |
Voici un exemple qui permet de boucler sur tous les graphiques de la 2eme feuille.
La procédure renvoie le nom de chaque graphique ainsi que la plage source.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | Sub BoucleGraphiquesFeuille Dim oDoc As Object Dim oChart As Object Dim i As Integer oDoc = ThisComponent 'Boucle sur les graphiques de la 2eme feuille For i = 0 To oDoc.Sheets(1).Charts.Count - 1 ochart = oDoc.Sheets(1).charts(i).EmbeddedObject 'La procédure récupère : '*le nom de chaque graphique '*la plage de données source MsgBox oDoc.Sheets(1).charts(i).Name & Chr(13) & _ ochart.ChartRangeAddress Next i End Sub |
La procédure suivante permet de changer la source de données, le titre du graphique et quelques mises en forme.
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | Sub ModifierGraphique Dim oDoc As Object Dim oChart As Object oDoc = ThisComponent 'Définit l'objet graphique (le 1er graphique de la 2eme feuille) oChart = oDoc.Sheets(1).Charts(0).EmbeddedObject '---- 'Remarque : 'Si vous connaissez le nom du graphique, vous pouvez utiliser cette syntaxe : 'oChart = oDoc.Sheets(1).Charts.getByName("MonGraphique").EmbeddedObject '---- 'Spécifie la nouvelle plage de données source oChart.ChartRangeAddress = "Feuille1.$A$1:.$B25" 'Modifie le titre du graphique oChart.Title.String = "Le nouveau titre" 'Modifie la couleur de fond du graphique oChart.Diagram.wall.FillColor = RGB(250,200,200) 'Modifie l'épaisseur de la courbe oChart.Diagram.Linewidth = 100 'Modifier l'étiquette de l'axe des abscisses oChart.Diagram.XAxisTitle.String = "azerty" '***************************** 'Important : '---------- 'Il est parfois nécessaire de lancer le recalcule automatique (touche F9) 'pour visualiser le résultat. '***************************** End Sub |
Cet exemple permet de redéfinir la plage source du graphique en ajoutant cinq lignes et deux colonnes par rapport à la plage de cellules initiale.
Une plage $A$1:$B$25 deviendra $A$1:$D$30 :
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | Sub Ajouter_Series_Et_Points Dim oDoc As Object Dim oChart As Object Dim Plage oDoc = ThisComponent 'Définit l'objet graphique (Le 1er graphique de la 2eme feuille) oChart = oDoc.Sheets(1).Charts(0) 'Récupère la plage actuelle Plage = oChart.getRanges() 'Ajoute cinq lignes par rapport à la source initiale Plage(0).EndRow = Plage(0).EndRow + 5 oChart.setRanges(Plage) 'Ajoute deux colonnes par rapport à la source initiale Plage(0).EndColumn = Plage(0).EndColumn + 2 oChart.setRanges(Plage) '-------------- 'Par exemple, une plage initiale $A$1:$B$25 deviendra $A$1:$D$30 '-------------- End Sub |
Code vb : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | Sub ExporterGraphique_FormatImage Dim Fichier As String Dim TabFiltre(3) As New com.sun.star.beans.PropertyValue Dim Tableau (2) As New com.sun.star.beans.PropertyValue Dim CheminURL As New com.sun.star.util.URL Dim Obj As Object Dim oGEF As Variant Fichier = ConvertToURL( "C:\ExportGraphique.jpg" ) 'Spécifie le 1er objet (en l'occurrence un graphique incorporé) contenu dans la 1er onglet Obj = ThisComponent.DrawPages.getByIndex( 0 ).getByIndex( 0 ) TabFiltre(0).Name = "PixelWidth" 'Largeur en pixels TabFiltre(0).Value = 900 TabFiltre(1).Name = "PixelHeight" 'Hauteur en pixels TabFiltre(1).Value = 700 TabFiltre(2).Name ="Quality" 'de 1 à 100% TabFiltre(2).Value = 80 TabFiltre(3).Name ="ColorMode" '0=Couleur , 1=Niveaux de Gris TabFiltre(3).Value = 0 oGEF = createUnoService( "com.sun.star.drawing.GraphicExportFilter" ) oGEF.SetSourceDocument( Obj ) CheminURL.complete = Fichier Tableau(0).Name = "MediaType" Tableau(0).Value = "image/jpeg" Tableau(1).Name = "URL" Tableau(1).Value = CheminURL Tableau(2).Name = "FilterData" Tableau(2).Value = TabFiltre oGEF.Filter( Tableau() ) End Sub |
Proposer une nouvelle réponse sur la FAQ
Ce n'est pas l'endroit pour poser des questions, allez plutôt sur le forum de la rubrique pour çaLes sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2024 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.