Édition des classeurs
La section précédente décrivait la structure principale des classeurs ; la présente section est consacrée aux services permettant d'accéder facilement à des cellules individuelles ou à des plages de cellules.
Plages de cellules
Outre l'objet destiné aux cellules individuelles (service (com.sun.star.table.Cell), Apache OpenOffice fournit également des objets représentant des plages de cellules. Les objets tels que CellRange sont créés avec l'appel getCellRangeByName de l'objet Spreadsheet :
Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("A1:C15")
Le signe deux-points (:) sert à spécifier une plage de cellules dans une feuille de calcul. Par exemple, A1:C15 représente toutes les cellules des lignes 1 à 15 et des colonnes A, B et C.
L'emplacement des cellules individuelles dans une plage de cellules peut être déterminé à l'aide de la méthode getCellByPosition, où les coordonnées de la cellule supérieure gauche de la plage sont (0, 0). L'exemple suivant utilise cette méthode pour créer un objet à partir de la cellule C3.
Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
Dim Cell As Object
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("B2:D4")
Cell = CellRange.GetCellByPosition(1, 1)
Formatage de plages de cellules
Tout comme pour les cellules individuelles, vous pouvez appliquer un formatage à des plages de cellules à l'aide du service com.sun.star.table.CellProperties. Pour plus d'informations et d'autres exemples de ce service, reportez-vous au chapitre Formatage des classeurs.
Calculs avec des plages de cellules
Vous pouvez utiliser la méthode computeFunction pour effectuer des opérations mathématiques sur des plages de cellules. La méthode computeFunction attend comme paramètre une constante décrivant la fonction mathématique à utiliser. Les constantes associées sont définies dans l'énumération com.sun.star.sheet.GeneralFunction. Les valeurs disponibles sont les suivantes :
- SUM
- somme de toutes les valeurs numériques.
- COUNT
- nombre total de valeurs (y compris les valeurs non numériques).
- COUNTNUMS
- nombre total de valeurs numériques.
- AVERAGE
- moyenne de toutes les valeurs numériques.
- MAX
- valeur numérique la plus élevée.
- MIN
- valeur numérique la plus petite.
- PRODUCT
- produit de toutes les valeurs numériques.
- STDEV
- écart type.
- VAR
- variance.
- STDEVP
- écart type calculé sur la base de la population totale.
- VARP
- variance calculée sur la base de la population totale.
L'exemple suivant calcule la valeur moyenne de la plage A1:C3 et affiche le résultat dans une boîte de message :
Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
CellRange = Sheet.getCellRangeByName("A1:C3")
MsgBox CellRange.computeFunction(com.sun.star.sheet.GeneralFunction.AVERAGE)
Suppression du contenu des cellules
La méthode clearContents simplifie le processus de suppression du contenu des cellules ou des plages de cellules, car elle permet de supprimer un type de contenu particulier d'une plage de cellules.
L'exemple suivant supprime toutes les chaînes et les informations de formatage direct de la plage B2:C3.
Dim Doc As Object
Dim Sheet As Object
Dim CellRange As Object
Dim Flags As Long
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
CellRange = Sheet.getCellRangeByName("B2:C3")
Flags = com.sun.star.sheet.CellFlags.STRING + _
com.sun.star.sheet.CellFlags.HARDATTR
CellRange.clearContents(Flags)
Les drapeaux spécifiés dans clearContents proviennent de la liste de constantes com.sun.star.sheet.CellFlags. Cette liste fournit les éléments suivants :
- VALUE
- valeurs numériques qui ne sont pas formatées sous forme de date ou d'heure.
- DATETIME
- valeurs numériques formatées sous forme de date ou d'heure.
- STRING
- chaîne.
- ANNOTATION
- commentaires liés aux cellules.
- FORMULA
- formules.
- HARDATTR
- formatage direct des cellules.
- STYLES
- formatage indirect.
- OBJECTS
- objets de dessin liés aux cellules.
- EDITATTR
- formatage des caractères ne s'appliquant qu'à certaines parties des cellules.
Vous pouvez également ajouter un ensemble de constantes pour supprimer différentes informations avec un appel de clearContents.
Recherche et remplacement du contenu des cellules
Les classeurs, comme les documents texte, proposent une fonction de recherche et remplacement.
Les objets Descriptor pour la recherche et le remplacement dans les classeurs ne sont pas créés directement au moyen de l'objet Document, mais plutôt avec la liste Sheets. L'exemple suivant illustre un processus de recherche et de remplacement :
Dim Doc As Object
Dim Sheet As Object
Dim ReplaceDescriptor As Object
Dim I As Integer
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
ReplaceDescriptor = Sheet.createReplaceDescriptor()
ReplaceDescriptor.SearchString = "is"
ReplaceDescriptor.ReplaceString = "was"
For I = 0 to Doc.Sheets.Count - 1
Sheet = Doc.Sheets(I)
Sheet.ReplaceAll(ReplaceDescriptor)
Next I
Cet exemple utilise la première page du document pour créer un objet ReplaceDescriptor, puis l'applique à toutes les pages dans une boucle.
Content on this page is licensed under the Public Documentation License (PDL). |