Structure des classeurs
- Structure des classeurs
- Édition des classeurs
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).
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). |