Formatage des classeurs

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


Un classeur fournit des propriétés et des méthodes de formatage des cellules et des pages.

Propriétés de cellule

Il existe de nombreuses options de formatage des cellules, telles que la spécification du type de police et de la taille du texte. Chaque cellule prend en charge les services com.sun.star.style.CharacterProperties et com.sun.star.style.ParagraphProperties, dont les principales propriétés sont décrites au chapitre Documents texte. Le formatage spécial des cellules est traité par le service com.sun.star.table.CellProperties. Les principales propriétés de ce service sont décrites dans les sections suivantes.

Vous pouvez appliquer toutes les propriétés nommées à des cellules individuelles et à des plages de cellules.

Documentation note.png L'objet CellProperties de l'API Apache OpenOffice est comparable à l'objet Interior de VBA, qui définit également les propriétés propres aux cellules.

Couleur d'arrière-plan et ombres

Les propriétés suivantes du service com.sun.star.table.CellProperties permettent de définir les couleurs d'arrière-plan et les ombres :

CellBackColor (Long)
couleur d'arrière-plan de la cellule du tableau.
IsCellBackgroundTransparent (Boolean)
définit une couleur d'arrière-plan transparente.
ShadowFormat (struct)
spécifie l'ombre à appliquer aux cellules (structure correspondant à com.sun.star.table.ShadowFormat).

La structure com.sun.star.table.ShadowFormat et les spécifications détaillées des ombres de cellule présentent la structure suivante :

Location (enum)
position de l'ombre (valeur provenant de la structure com.sun.star.table.ShadowLocation).
ShadowWidth (Short)
taille de l'ombre en centièmes de millimètre.
IsTransparent (Boolean)
définit une ombre transparente.
Color (Long)
couleur de l'ombre.

L'exemple suivant inscrit le nombre 1 000 dans la cellule B2, applique la couleur rouge à l'arrière-plan à l'aide de la propriété CellBackColor, puis crée une ombre gris clair pour la cellule, qui est déplacée de 1 mm vers la gauche et vers le bas.

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
Dim ShadowFormat As New com.sun.star.table.ShadowFormat
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)
 
Cell.Value = 1000
 
Cell.CellBackColor = RGB(255, 0, 0)
 
ShadowFormat.Location = com.sun.star.table.ShadowLocation.BOTTOM_RIGHT
ShadowFormat.ShadowWidth = 100
ShadowFormat.Color = RGB(160, 160, 160)
 
Cell.ShadowFormat = ShadowFormat

Justification

Apache OpenOffice fournit diverses fonctions permettent de modifier la justification d'un texte dans une cellule de tableau.

Les propriétés suivantes définissent la justification horizontale et verticale d'un texte :

HoriJustify (enum)
justification horizontale du texte (valeur provenant de com.sun.star.table.CellHoriJustify).
VertJustify (enum)
justification verticale du texte (valeur provenant de com.sun.star.table.CellVertJustify).
Orientation (enum)
orientation du texte (valeur correspondant à com.sun.star.table.CellOrientation).
IsTextWrapped (Boolean)
autorise les retours à la ligne automatiques à l'intérieur de la cellule.
RotateAngle (Long)
angle de rotation du texte en centièmes de degré.

L'exemple suivant illustre l'empilement du contenu d'une cellule pour que les caractères s'impriment les uns en dessous des autres dans le coin supérieur gauche de la cellule. Les caractères ne subissent aucune rotation.

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)
 
Cell.Value = 1000
 
Cell.HoriJustify = com.sun.star.table.CellHoriJustify.LEFT
Cell.VertJustify = com.sun.star.table.CellVertJustify.TOP
Cell.Orientation = com.sun.star.table.CellOrientation.STACKED

Format numérique, format de date et format texte

Apache OpenOffice fournit divers formats de date et d'heure prédéfinis. Chacun de ces formats comporte un numéro de série utilisé pour assigner le format correspondant aux cellules à l'aide de la propriété NumberFormat. Dans Apache OpenOffice, les méthodes queryKey et addNew permettent d'accéder à des formats numériques existants et de créer ses propres formats numériques. Ces méthodes sont accessibles par l'appel d'objet suivant :

NumberFormats = Doc.NumberFormats

Un format se spécifie à l'aide d'une chaîne de format structurée de la même façon que la fonction de format de Apache OpenOffice Basic. Il existe toutefois une différence importante : le format de commande requiert des abréviations, symboles décimaux et caractères séparateurs de milliers anglais, tandis que les abréviations propres au pays doivent être utilisées dans la structure d'un format de commande pour l'objet NumberFormats.

L'exemple suivant formate la cellule B2 pour que les nombres s'affichent avec trois décimales et qu'ils utilisent des virgules comme séparateurs de milliers.

Dim Doc As Object
Dim Sheet As Object
Dim Cell As Object
Dim NumberFormats As Object
Dim NumberFormatString As String
Dim NumberFormatId As Long
Dim LocalSettings As New com.sun.star.lang.Locale
 
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
Cell = Sheet.getCellByPosition(1,1)
 
Cell.Value = 23400.3523565
 
LocalSettings.Language = "en"
LocalSettings.Country = "us"
 
NumberFormats = Doc.NumberFormats
NumberFormatString = "#,##0.000"
 
NumberFormatId = NumberFormats.queryKey(NumberFormatString, LocalSettings, True)
If NumberFormatId = -1 Then
   NumberFormatId = NumberFormats.addNew(NumberFormatString, LocalSettings)
End If
 
MsgBox NumberFormatId
Cell.NumberFormat = NumberFormatId

La boîte de dialogue Formatage des cellules de Apache OpenOffice Calc fournit un aperçu des différentes options de formatage des cellules.

Propriétés de page

Les propriétés de page sont des options de formatage permettant de positionner le contenu d'un document sur une page, ainsi que des éléments visuels qui se répètent d'une page à l'autre. Il s'agit notamment des éléments suivants :

  • les formats de papier ;
  • les marges ;
  • les en-têtes et pieds de page.

La procédure de définition des formats de page est différente des autres formes de formatage. En effet, tandis que les formats de cellules, de paragraphes et de caractères sont applicables directement, les formats de page peuvent également être définis, puis appliqués indirectement à l'aide des styles de page. Par exemple, les en-têtes ou les pieds de page sont ajoutés au style de page.

Les sections suivantes décrivent les principales options de formatage des pages de feuilles de calcul. La plupart des styles décrits sont également disponibles pour les documents texte. Les propriétés de page valides pour les deux types de documents sont définies dans le service com.sun.star.style.PageProperties. Les propriétés de page qui ne s'appliquent qu'aux classeurs sont définies dans le service com.sun.star.sheet.TablePageStyle.

Documentation note.png Les propriétés de page (marges, bordures, etc.) d'un document Microsoft Office sont définies par un objet PageSetup au niveau de l'objet Worksheet (Excel) ou Document (Word). Dans Apache OpenOffice, ces propriétés sont définies à l'aide d'un style de page lié au document associé.

Arrière-plan de page

Le service com.sun.star.style.PageProperties définit les propriétés d'arrière-plan de page suivantes :

BackColor (long)
couleur d'arrière-plan.
BackGraphicURL (String)
URL de l'image d'arrière-plan à utiliser.
BackGraphicFilter (String)
nom du filtre d'interprétation de l'image d'arrière-plan.
BackGraphicLocation (Enum)
position de l'image d'arrière-plan (valeur correspondant à l'énumération).
BackTransparent (Boolean)
rend l'arrière-plan transparent.

Format de page

Le format de page est défini à l'aide des propriétés suivantes du service com.sun.star.style.PageProperties :

IsLandscape (Boolean)
format paysage.
Width (long)
largeur de page en centièmes de millimètre.
Height (long)
hauteur de page en centièmes de millimètre.
PrinterPaperTray (String)
nom du bac d'alimentation d'imprimante à utiliser.

L'exemple suivant règle la taille de page du style de page par défaut (Default) sur le format paysage DIN A5 (hauteur 14,8 cm, largeur 21 cm) :

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
 
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.IsLandscape = True
DefPage.Width = 21000
DefPage.Height = 14800

Marge, bordure et ombre

Les propriétés suivantes du service com.sun.star.style.PageProperties permettent d'ajuster les marges, les bordures et les ombres :

LeftMargin (long)
largeur de la marge gauche en centièmes de millimètre.
RightMargin (long)
largeur de la marge droite en centièmes de millimètre.
TopMargin (long)
largeur de la marge supérieure en centièmes de millimètre.
BottomMargin (long)
largeur de la marge inférieure en centièmes de millimètre.
LeftBorder (struct)
spécifications de la bordure de page gauche (structure com.sun.star.table.BorderLine).
RightBorder (struct)
spécifications de la bordure de page droite (structure com.sun.star.table.BorderLine).
TopBorder (struct)
spécifications de la bordure de page supérieure (structure (com.sun.star.table.BorderLine).
BottomBorder (struct)
spécifications de la bordure de page inférieure (structure com.sun.star.table.BorderLine).
LeftBorderDistance (long)
distance entre la bordure gauche de la page et le contenu de la page, exprimée en centièmes de millimètre.
RightBorderDistance (long)
distance entre la bordure droite de la page et le contenu de la page, exprimée en centièmes de millimètre.
TopBorderDistance (long)
distance entre la bordure supérieure de la page et le contenu de la page, exprimée en centièmes de millimètre.
BottomBorderDistance (long)
distance entre la bordure inférieure de la page et le contenu de la page, exprimée en centièmes de millimètre.
ShadowFormat (struct)
spécifications de l'ombre de la zone de contenu de la page (structure com.sun.star.table.ShadowFormat).

L'exemple suivant définit les bordures gauche et droite du style de page par défaut (Default) sur 1 centimètre.

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
 
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.LeftMargin = 1000
DefPage.RightMargin = 1000

En-têtes et pieds de page

Les en-têtes et pieds de page d'un document font partie des propriétés de la page et sont définis à l'aide du service com.sun.star.style.PageProperties. Les propriétés de formatage des en-têtes sont les suivantes :

HeaderIsOn (Boolean)
l'en-tête est activé.
HeaderLeftMargin (long)
distance entre l'en-tête et la marge gauche en centièmes de millimètre.
HeaderRightMargin (long)
distance entre l'en-tête et la marge droite en centièmes de millimètre.
HeaderBodyDistance (long)
distance entre l'en-tête et le corps du document en centièmes de millimètre.
HeaderHeight (long)
hauteur de l'en-tête en centièmes de millimètre.
HeaderIsDynamicHeight (Boolean)
la hauteur de l'en-tête s'adapte automatiquement au contenu.
HeaderLeftBorder (struct)
détails de la bordure gauche du cadre entourant l'en-tête (structure com.sun.star.table.BorderLine).
HeaderRightBorder (struct)
détails de la bordure droite du cadre entourant l'en-tête (structure com.sun.star.table.BorderLine).
HeaderTopBorder (struct)
détails de la bordure supérieure entourant l'en-tête (structure (com.sun.star.table.BorderLine).
HeaderBottomBorder (struct)
détails de la bordure inférieure entourant l'en-tête (structure com.sun.star.table.BorderLine).
HeaderLeftBorderDistance (long)
distance entre la bordure gauche et le contenu de l'en-tête en centièmes de millimètre.
HeaderRightBorderDistance (long)
distance entre la bordure droite et le contenu de l'en-tête en centièmes de millimètre.
HeaderTopBorderDistance (long)
distance entre la bordure supérieure et le contenu de l'en-tête en centièmes de millimètre.
HeaderBottomBorderDistance (long)
distance entre la bordure inférieure et le contenu de l'en-tête en centièmes de millimètre.
HeaderIsShared (Boolean)
le contenu des en-têtes de pages paires et impaires est identique (voir HeaderText , HeaderTextLeft et HeaderTextRight).
HeaderBackColor (long)
couleur d'arrière-plan de l'en-tête.
HeaderBackGraphicURL (String)
URL de l'image d'arrière-plan à utiliser.
HeaderBackGraphicFilter (String)
nom du filtre d'interprétation de l'image d'arrière-plan pour l'en-tête.
HeaderBackGraphicLocation (Enum)
position de l'image d'arrière-plan pour l'en-tête (valeur correspondant à l'énumération com.sun.star.style.GraphicLocation).
HeaderBackTransparent (Boolean)
l'arrière-plan de l'en-tête est transparent.
HeaderShadowFormat (struct)
détails de l'ombre de l'en-tête (structure (com.sun.star.table.ShadowFormat).

Les propriétés de formatage des pieds de page sont les suivantes :

FooterIsOn (Boolean)
le pied de page est activé.
FooterLeftMargin (long)
distance entre le pied de page et la marge gauche en centièmes de millimètre.
FooterRightMargin (long)
distance entre le pied de page et la marge droite en centièmes de millimètre.
FooterBodyDistance (long)
distance entre le pied de page et le corps du document en centièmes de millimètre.
FooterHeight (long)
hauteur du pied de page en centièmes de millimètre.
FooterIsDynamicHeight (Boolean)
la hauteur du pied de page s'adapte automatiquement au contenu.
FooterLeftBorder (struct)
détails de la bordure gauche entourant le pied de page (structure com.sun.star.table.BorderLine).
FooterRightBorder (struct)
détails de la bordure droite entourant le pied de page (structure com.sun.star.table.BorderLine).
FooterTopBorder (struct)
détails de la bordure supérieure entourant le pied de page (structure com.sun.star.table.BorderLine).
FooterBottomBorder (struct)
détails de la bordure inférieure entourant le pied de page (structure (com.sun.star.table.BorderLine).
FooterLeftBorderDistance (long)
distance entre la bordure gauche et le contenu du pied de page en centièmes de millimètre.
FooterRightBorderDistance (long)
distance entre la bordure droite et le contenu du pied de page, exprimée en centièmes de millimètre.
FooterTopBorderDistance (long)
distance entre la bordure supérieure et le contenu du pied de page, exprimée en centièmes de millimètre.
FooterBottomBorderDistance (long)
distance entre la bordure inférieure et le contenu du pied de page, exprimée en centièmes de millimètre.
FooterIsShared (Boolean)
le contenu des pieds de page des pages paires et impaires est identique (voir FooterText, FooterTextLeft et FooterTextRight).
FooterBackColor (long)
couleur d'arrière-plan du pied de page.
FooterBackGraphicURL (String)
URL de l'image d'arrière-plan à utiliser.
FooterBackGraphicFilter (String)
nom du filtre d'interprétation de l'image d'arrière-plan pour le pied de page.
FooterBackGraphicLocation (Enum)
position de l'image d'arrière-plan pour le pied de page (valeur correspondant à l'énumération com.sun.star.style.GraphicLocation).
FooterBackTransparent (Boolean)
l'arrière-plan du pied de page est transparent.
FooterShadowFormat (struct)
détails de l'ombre du pied de page (structure com.sun.star.table.ShadowFormat).

Modification du texte des en-têtes et pieds de pages

Le contenu des en-têtes et pieds de pages d'un classeur est accessible via les propriétés suivantes :

LeftPageHeaderContent (Object)
contenu des en-têtes des pages paires (service com.sun.star.sheet.HeaderFooterContent).
RightPageHeaderContent (Object)
contenu des en-têtes des pages impaires (service com.sun.star.sheet.HeaderFooterContent).
LeftPageFooterContent (Object)
contenu des pieds de page des pages paires (service com.sun.star.sheet.HeaderFooterContent).
RightPageFooterContent (Object)
contenu des pieds de page des pages impaires (service com.sun.star.sheet.HeaderFooterContent).

Si vous n'avez pas besoin de faire la distinction entre pages paires et impaires dans les en-têtes ou les pieds de page (la valeur de la propriété FooterIsShared est False), définissez les propriétés des en-têtes et des pieds de page sur les pages impaires.

Tous les objets nommés retournent un objet prenant en charge le service com.sun.star.sheet.HeaderFooterContent. À l'aide des propriétés non authentiques LeftText, CenterText et RightText, ce service fournit trois éléments de texte aux en-têtes et pieds de page de Apache OpenOffice Calc.

L'exemple ci-dessous écrit la valeur "Just a Test." (ceci est un test) dans le champ de texte situé à gauche de l'en-tête à partir du modèle Default.

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
Dim HText As Object
Dim HContent As Object
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.HeaderIsOn = True
HContent = DefPage.RightPageHeaderContent
HText = HContent.LeftText
HText.String = "Just a Test."
DefPage.RightPageHeaderContent = HContent

Notez bien la dernière ligne de l'exemple : une fois le texte modifié, l'objet TextContent doit être de nouveau assigné à l'en-tête pour que la modification prenne effet.

Un autre mécanisme de modification du texte des en-têtes et pieds de page existe pour les documents texte (Apache OpenOffice Writer), car ceux-ci sont constitués d'un bloc de texte unique. Les propriétés suivantes sont définies dans le service com.sun.star.style.PageProperties :

HeaderText (Object)
objet Text comprenant le contenu de l'en-tête (service com.sun.star.text.XText).
HeaderTextLeft (Object)
objet Text comprenant le contenu des en-têtes des pages de gauche (service com.sun.star.text.XText).
HeaderTextRight (Object)
objet Text comprenant le contenu des en-têtes des pages de droite (service com.sun.star.text.XText).
FooterText (Object)
objet Text comprenant le contenu du pied de page (service com.sun.star.text.XText).
FooterTextLeft (Object)
objet Text comprenant le contenu des pieds des pages de gauche (service com.sun.star.text.XText).
FooterTextRight (Object)
objet Text comprenant le contenu des pieds des pages de droite (service com.sun.star.text.XText).

L'exemple suivant crée un en-tête dans le style de page par défaut (Default) des documents texte et ajoute le texte "Just a Test" (ceci est un test) à cet en-tête.

Dim Doc As Object
Dim Sheet As Object
Dim StyleFamilies As Object 
Dim PageStyles As Object
Dim DefPage As Object
Dim HText As Object
 
Doc = StarDesktop.CurrentComponent
StyleFamilies = Doc.StyleFamilies
PageStyles = StyleFamilies.getByName("PageStyles")
DefPage = PageStyles.getByName("Default")
 
DefPage.HeaderIsOn = True
HText = DefPage.HeaderText 
 
HText.String = "Just a Test."

Dans cet exemple, l'accès est fourni directement par la propriété HeaderText du style de page, plutôt que par l'objet HeaderFooterContent.

Centrage (feuilles de calcul uniquement)

Le service com.sun.star.sheet.TablePageStyle, utilisé uniquement dans les styles de page de Apache OpenOffice Calc, permet de centrer sur la page les plages de cellules que vous souhaitez imprimer. Ce service fournit les propriétés suivantes :

CenterHorizontally (Boolean)
le contenu du tableau est centré horizontalement.
CenterVertically (Boolean)
le contenu du tableau est centré verticalement.

Définition des éléments à imprimer (feuilles de calcul uniquement)

Lorsque vous formatez des feuilles, vous pouvez spécifier si les éléments de la page doivent être visibles ou non. Pour cela, le service com.sun.star.sheet.TablePageStyle fournit les propriétés suivantes :

PrintAnnotations (Boolean)
imprime les commentaires des cellules.
PrintGrid (Boolean)
imprime les lignes de la grille.
PrintHeaders (Boolean)
imprime les en-têtes de ligne et de colonne.
PrintCharts (Boolean)
imprime les diagrammes contenus dans une feuille.
PrintObjects (Boolean)
imprime les objets incorporés.
PrintDrawing (Boolean)
imprime les objets de dessin.
PrintDownFirst (Boolean)
si le contenu d'une feuille s'étend sur plusieurs pages, les cellules sont d'abord imprimées verticalement du haut vers le bas, puis de gauche à droite.
PrintFormulas (Boolean)
imprime les formules à la place des valeurs calculées.
PrintZeroValues (Boolean)
imprime les valeurs zéro.
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools