Structure des classeurs

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

L'objet Document d'un classeur est basé sur le service com.sun.star.sheet.SpreadsheetDocument. Chaque document de ce type peut comporter plusieurs feuilles de calcul. Dans ce guide, un classeur ou document basé sur des tables désigne le document entier, tandis qu'une feuille de calcul (ou feuille) correspond à une feuille (table) du document (classeur).

Documentation note.png La terminologie utilisée dans Apache OpenOffice Basic. pour désigner les feuilles de calcul et leur contenu est différente de VBA. L'objet Document est appelé Workbook dans VBA et les pages qu'il contient Worksheets, tandis que, dans Apache OpenOffice Basic, ces objets sont respectivement appelés SpreadsheetDocument et Sheet.

Feuilles de calcul

Vous pouvez accéder à chaque feuille de calcul d'un classeur via la liste Sheets.

Les exemples suivants accèdent à une feuille par son numéro ou par son nom.

Exemple 1 : accès par le numéro (la numérotation commence à 0)

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets (0)

Exemple 2 : accès par le nom

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets.getByName("Sheet 1")

Dans le premier exemple, on accède à la feuille par son numéro (la numérotation commençant à 0). Dans le second, on y accède par son nom et par la méthode getByName.

L'objet Sheet obtenu par la méthode getByName prend en charge le service com.sun.star.sheet.Spreadsheet. Outre les différentes interfaces qu'il propose pour l'édition du contenu, ce service fournit les propriétés suivantes :

IsVisible (Boolean)
la feuille est visible.
PageStyle (String)
nom du modèle de page de la feuille.

Création, suppression et attribution de nom à des feuilles

La liste Sheets d'un document spreadsheet permet également de créer, de supprimer et de renommer des feuilles individuelles. L'exemple ci-dessous utilise la méthode hasByName pour vérifier si une feuille nommée MySheet existe. Si c'est le cas, la méthode détermine une référence d'objet correspondante à l'aide de la méthode getByName, puis enregistre cette référence dans une variable de Sheet. Si la feuille correspondante n'existe pas, elle est créée par l'appel createInstance et insérée dans le classeur par la méthode insertByName.

Dim Doc As Object
Dim Sheet As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
 
If Doc.Sheets.hasByName("MySheet") Then
   Sheet = Doc.Sheets.getByName("MySheet")
Else
   Sheet = Doc.createInstance("com.sun.star.sheet.Spreadsheet")
   Doc.Sheets.insertByName("MySheet", Sheet)
End If

Les méthodes getByName et insertByName proviennent de l'interface com.sun.star.container.XnameContainer , dont vous trouverez une description au chapitre Introduction à l'API.

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools