Édition des classeurs

From Apache OpenOffice Wiki
Jump to: navigation, search
doc OOo
Book.png


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