Werkbladdocumenten opmaken

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


Een werkbladdocument verschaft eigenschappen en methoden voor het opmaken van cellen en pagina's.

Celeigenschappen

Er zijn vele opties voor het opmaken van cellen, zoals het specificeren van het lettertype en afmeting voor tekst. Elke cel ondersteunt de services com.sun.star.style.CharacterProperties en com.sun.star.style.ParagraphProperties, waarvan de belangrijkste eigenschappen werden beschreven in Tekstdocumenten. Speciale celopmaak wordt behandeld door de service com.sun.star.table.CellProperties. De belangrijkste eigenschappen voor deze service worden beschreven in de volgende gedeelten.

U kunt alle genoemde eigenschappen toepassen op individuele cellen en ook op celbereiken.

Documentation note.png VBA : Het object CellProperties in de API van Apache OpenOffice is vergelijkbaar met het object Interior uit VBA dat ook specifieke eigenschappen voor cellen definieert.


Achtergrondkleur en schaduw

De service com.sun.star.table.CellProperties verschaft de volgende eigenschappen voor het definiëren van achtergrondkleuren en schaduw:

CellBackColor (Long)
achtergrondkleur van de tabelcel
IsCellBackgroundTransparent (Boolean)
stelt de achtergrondkleur op transparant in
ShadowFormat (struct)
specificeert de schaduw voor cellen (structuur die overeenkomt met com.sun.star.table.ShadowFormat)

De structuur com.sun.star.table.ShadowFormat en de gedetailleerde specificaties voor de schaduw voor cellen hebben de volgende structuur:

Location (enum)
positie van de schaduw (waarde van de structuur com.sun.star.table.ShadowLocation).
ShadowWidth (Short)
grootte van de schaduw in 100-en van een millimeter
IsTransparent (Boolean)
stelt de schaduw in op transparant
Color (Long)
kleur van de schaduw

Het volgende voorbeeld schrijft het getal 1000 in de cel B2, verandert de achtergrondkleur naar rood met behulp van de eigenschap CellBackColor en maakt dan voor de cel een lichtgrijze schaduw welke 1 mm naar links en naar beneden verplaatst wordt.

Dim Doc As Object
Dim Blad As Object
Dim Cel As Object
Dim SchaduwOpmaak As New com.sun.star.table.ShadowFormat
 
Doc = ThisComponent
Blad = Doc.Sheets(0)
Cel = Blad.getCellByPosition(1,1)
 
Cel.Value = 1000
 
Cel.CellBackColor = RGB(255, 0, 0)
 
SchaduwOpmaak.Location = com.sun.star.table.ShadowLocation.BOTTOM_RIGHT
SchaduwOpmaak.ShadowWidth = 100
SchaduwOpmaak.Color = RGB(160, 160, 160)
 
Cel.ShadowFormat = SchaduwOpmaak

Uitlijnen

Apache OpenOffice verschaft verschillende functies die u toestaan de uitlijning van een tekst in een tabel te veranderen.

De volgende eigenschappen definiëren de horizontale en verticale uitlijning van een tekst:

HoriJustify (enum)
horizontale uitlijning van de tekst (waarde uit com.sun.star.table.CellHoriJustify)
VertJustify (enum)
verticale uitlijning van de tekst (waarde uit com.sun.star.table.CellVertJustify)
Orientation (enum)
richting van de tekst (waarde die overeenkomt met com.sun.star.table.CellOrientation)
IsTextWrapped (Boolean)
staat automatische regeleinden binnen de cel toe
RotateAngle (Long)
draaihoek van de tekst in 100-en van een graad

Het volgende voorbeeld toont hoe u de inhoud van een cel kunt “stapelen” zodat de individuele tekens onder elkaar worden afgedrukt in de linkerbovenhoek van de cel. De tekens worden niet gedraaid.

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

Opmaken van getallen, datum en tekst

Apache OpenOffice verschaft een heel bereik aan vooraf gedefinieerde opmaken voor datum en tijd. Elk van deze opmaken heeft een intern getal dat wordt gebruikt om de opmaak toe te wijzen aan cellen met behulp van de eigenschap NumberFormat. Apache OpenOffice verschaft de methoden queryKey en addNew zodat u bestaande opmaak voor getallen kunt benaderen en ook uw eigen opmaak voor getallen kunt maken. De methoden worden benaderd via de volgende aanroep voor het object:

NumberFormats = Doc.NumberFormats

Een opmaak wordt gespecificeerd met behulp van een tekenreeks voor opmaak die is gestructureerd op eenzelfde wijze als de functie voor opmaak van Apache OpenOffice BASIC. Er is echter één groot verschil: waar de opmaak via opdrachten Engelse afkortingen verwacht en decimale punten of tekens als scheidingsteken voor duizendtallen, moeten land-specifieke afkortingen worden gebruikt voor de structuur van een opmaak via opdrachten voor het object NumberFormats.

Het volgende voorbeeld maakt de B2 cel op zodat getallen worden weergegeven met drie decimale plaatsen en komma's gebruikt als scheidingsteken voor duizendtallen.

Dim Doc As Object
Dim Blad As Object
Dim Cel As Object
Dim GetalOpmaak As Object
Dim GetalOpmaakTekens As String
Dim NummerOpmaakId As Long
Dim LocaleInstellingen As New com.sun.star.lang.Locale
 
Doc = ThisComponent
Blad = Doc.Sheets(0)
Cel = Blad.getCellByPosition(1,1)
 
Cel.Value = 23400.3523565
 
LocaleInstellingen.Language = "en"
LocaleInstellingen.Country = "us"
 
GetalOpmaak = Doc.NumberFormats
GetalOpmaakTekens = "#,##0.000"
 
GetalOpmaakId = GetalOpmaak.queryKey(GetalOpmaakTekens, LocaleInstellingen, True)
If GetalOpmaakId = -1 Then
   GetalOpmaakId = GetalOpmaak.addNew(GetalOpmaakTekens, LocaleInstellingen)
End If
 
MsgBox GetalOpmaakId
Cel.NumberFormats = GetalOpmaakId

Het dialoogvenster Cellen opmaken in Apache OpenOffice Calc verschaft een overzicht van de verschillende opties voor opmaak van cellen.

Eigenschappen voor pagina's

Eigenschappen voor pagina's zijn de opties voor opmaak die de inhoud van het document op een pagina plaatsen, net zoals de visuele elementen die pagina na pagina herhaald worden. Hierbij horen

  • Indeling van het papier
  • Paginamarges
  • Kop- en voetteksten.

De procedure voor het definiëren van opmaak van de pagina verschilt van andere vormen van opmaak. Waar dat bij cel, alinea, en teken-elementen direct kan, kan opmaak voor de pagina ook worden gedefinieerd en indirect worden toegepast met behulp van pagina-opmaakprofielen. Kop- en voetteksten worden bijvoorbeeld toegevoegd aan het pagina-opmaakprofiel.

De volgende gedeelten beschrijven de belangrijkste opties voor opmaak van pagina's van werkbladen. Veel van de opmaakprofielen die worden beschreven zijn ook beschikbaar voor tekstdocumenten. De eigenschappen voor pagina's die geldig zijn voor beide typen van documenten worden gedefinieerd in de service com.sun.star.style.PageProperties. De eigenschappen voor pagina's die alleen kunnen worden toegepast op werkbladdocumenten worden gedefinieerd in de service com.sun.star.sheet.TablePageStyle.

Documentation note.png VBA : De eigenschappen voor pagina's (paginamarges, randen enzovoort) voor een document in Microsoft Office worden gedefinieerd door middel van een object PageSetup op het niveau van het object Worksheet (Excel) of het object Document (Word). In Apache OpenOffice worden deze eigenschappen gedefinieerd met behulp van een pagina-opmaakprofiel dat op zijn beurt wordt gekoppeld aan het geassocieerde document.


Achtergrond van pagina

De service com.sun.star.style.PageProperties definieert de volgende eigenschappen van een achtergrond van een pagina:

BackColor (long)
kleur van de achtergrond
BackGraphicURL (String)
URL van de afbeelding voor de achtergrond die u wilt gebruiken
BackGraphicFilter (String)
naam van het filter voor het interpreteren van de afbeelding voor de achtergrond
BackGraphicLocation (Enum)
positie van de afbeelding voor de achtergrond (waarde overeenkomstig de nummering)
BackTransparent (Boolean)
maakt de achtergrond transparant

Opmaak van de pagina

De opmaak van de pagina wordt gedefinieerd met behulp van de volgende eigenschappen van de service com.sun.star.style.PageProperties

IsLandscape (Boolean)
indeling Liggend
Width (long)
breedte van de pagina in 100-en van een millimeter
Height (long)
hoogte van de pagina in 100-en van een millimeter
PrinterPaperTray (String)
naam van de papierlade van de printer die u wilt gebruiken

Het volgende voorbeeld stelt de opmaak van de pagina van het paginaopmaakprofiel “Standaard” in op de indeling DIN A5 liggend (hoogte 14.8 cm, breedte 21 cm):

Dim Doc As Object
Dim Blad As Object
Dim Opmaakprofielen As Object 
Dim PaginaOpmaakprofielen As Object
Dim DefPagina As Object
 
Doc = ThisComponent
Opmaakprofielen = Doc.StyleFamilies
PaginaOpmaakprofielen = Opmaakprofielen.getByName("PageStyles")
DefPagina = PaginaOpmaakprofielen.getByName("Standaard")
 
DefPagina.IsLandscape = True
DefPagina.Width = 21000
DefPagina.Height = 14800

Paginamarge, rand en schaduw

De service com.sun.star.style.PageProperties verschaft de volgende eigenschappen voor het aanpassen van de paginamarges, evenals voor omrandingen en schaduw:

LeftMargin (long)
breedte van de linker paginamarge in 100-en van een millimeter
RightMargin (long)
breedte van de rechter paginamarge in 100-en van een millimeter
TopMargin (long)
breedte van de bovenste paginamarge in 100-en van een millimeter
BottomMargin (long)
breedte van de onderste paginamarge in 100-en van een millimeter
LeftBorder (struct)
specificaties voor linker rand van de pagina (structuur com.sun.star.table.BorderLine)
RightBorder (struct)
specificaties voor rechter rand van de pagina (structuur com.sun.star.table.BorderLine )
TopBorder (struct)
specificaties voor bovenste rand van de pagina (structuur com.sun.star.table.BorderLine )
BottomBorder (struct)
specificaties voor onderste rand van de pagina (structuur com.sun.star.table.BorderLine )
LeftBorderDistance (long)
afstand tussen de linker rand van de pagina en de inhoud van de pagina in 100-en van een millimeter
RightBorderDistance (long)
afstand tussen de rechter rand van de pagina en de inhoud van de pagina in 100-en van een millimeter
TopBorderDistance (long)
afstand tussen de bovenste rand van de pagina en de inhoud van de pagina in 100-en van een millimeter
BottomBorderDistance (long)
afstand tussen de onderste rand van de pagina en de inhoud van de pagina in 100-en van een millimeter
ShadowFormat (struct)
specificaties voor schaduw van het gebied van de inhoud van de pagina (structuur com.sun.star.table.ShadowFormat)

Het volgende voorbeeld stelt de linker en rechter rand van het paginaopmaakprofiel “Standaard” in op 1 centimeter.

Dim Doc As Object
Dim Blad As Object
Dim OpmaakProfielen As Object 
Dim PaginaOpmaakprofielen As Object
Dim DefPagina As Object
 
Doc = ThisComponent
OpmaakProfielen = Doc.StyleFamilies
PaginaOpmaakprofielen = OpmaakProfielen.getByName("PageStyles")
DefPagina = PaginaOpmaakprofielen.getByName("Standaard")
 
DefPagina.LeftMargin = 1000
DefPagina.RightMargin = 1000

Kop- en voetteksten

De kop- en voetteksten van een document vormen een deel van de pagina-eigenschappen en worden gedefinieerd met behulp van de service com.sun.star.style.PageProperties. De eigenschappen voor het opmaken van de kopteksten zijn:

HeaderIsOn (Boolean)
koptekst is actief
HeaderLeftMargin (long)
afstand tussen de koptekst en de linker paginamarge in 100-en van een millimeter
HeaderRightMargin (long)
afstand tussen de koptekst en de rechter paginamarge in 100-en van een millimeter
HeaderBodyDistance (long)
afstand tussen de koptekst en het gebied voor de inhoud in 100-en van een millimeter
HeaderHeight (long)
hoogte van de koptekst in 100-en van een millimeter
HeaderIsDynamicHeight (Boolean)
hoogte van de koptekst wordt automatisch aangepast aan de inhoud
HeaderLeftBorder (struct)
details van de linker rand van het kader rondom de koptekst (structuur com.sun.star.table.BorderLine )
HeaderRightBorder (struct)
details van de rechter rand van het kader rondom de koptekst (structuur com.sun.star.table.BorderLine )
HeaderTopBorder (struct)
details van de bovenste rand van het kader rondom de koptekst (structuur com.sun.star.table.BorderLine )
HeaderBottomBorder (struct)
details van de onderste rand van het kader rondom de koptekst (structuur com.sun.star.table.BorderLine )
HeaderLeftBorderDistance (long)
afstand tussen de linker rand en de inhoud van de koptekst in 100-en van een millimeter
HeaderRightBorderDistance (long)
afstand tussen de rechter rand en de inhoud van de koptekst in 100-en van een millimeter
HeaderTopBorderDistance (long)
afstand tussen de bovenste rand en de inhoud van de koptekst in 100-en van een millimeter
HeaderBottomBorderDistance (long)
afstand tussen de onderste rand en de inhoud van de koptekst in 100-en van een millimeter
HeaderIsShared (Boolean)
kopteksten op even en oneven pagina's hebben dezelfde inhoud (bekijk ook HeaderText , HeaderTextLeft en HeaderTextRight )
HeaderBackColor (long)
kleur van de achtergrond van de koptekst
HeaderBackGraphicURL (String)
URL van de afbeelding voor de achtergrond die u wilt gebruiken
HeaderBackGraphicFilter (String)
naam van het filter voor het interpreteren van de afbeelding voor de achtergrond voor de koptekst
HeaderBackGraphicLocation (Enum)
positie van de afbeelding voor de koptekst (waarde die overeenkomt met de opsomming com.sun.star.style.GraphicLocation)
HeaderBackTransparent (Boolean)
geeft de achtergrond van de koptekst transparant weer
HeaderShadowFormat (struct)
details voor de schaduw van de koptekst (structuur com.sun.star.table.ShadowFormat )

De eigenschappen voor het opmaken van voetteksten zijn:

FooterIsOn (Boolean)
voettekst is actief
FooterLeftMargin (long)
afstand tussen de voettekst en de linker paginamarge in 100-en van een millimeter
FooterRightMargin (long)
afstand tussen de voettekst en de rechter paginamarge in 100-en van een millimeter
FooterBodyDistance (long)
afstand tussen de voettekst en het gebied voor de inhoud in 100-en van een millimeter
FooterHeight (long)
hoogte van de voettekst in 100-en van een millimeter
FooterIsDynamicHeight (Boolean)
hoogte van de voettekst wordt automatisch aangepast aan de inhoud
FooterLeftBorder (struct)
details van de linker rand van het kader rondom de voettekst (structuur com.sun.star.table.BorderLine )
FooterRightBorder (struct)
details van de rechter rand van het kader rondom de voettekst (structuur com.sun.star.table.BorderLine)
FooterTopBorder (struct)
details van de bovenste rand van het kader rondom de voettekst (structuur com.sun.star.table.BorderLine)
FooterBottomBorder (struct)
details van de onderste rand van het kader rondom de voettekst (structuur com.sun.star.table.BorderLine)
FooterLeftBorderDistance (long)
afstand tussen de linker rand en de inhoud van de voettekst in 100-en van een millimeter
FooterRightBorderDistance (long)
afstand tussen de rechter rand en de inhoud van de voettekst in 100-en van een millimeter
FooterTopBorderDistance (long)
afstand tussen de bovenste rand en de inhoud van de voettekst in 100-en van een millimeter
FooterBottomBorderDistance (long)
afstand tussen de onderste rand en de inhoud van de voettekst in 100-en van een millimeter
FooterIsShared (Boolean)
de voetteksten op de even en oneven pagina's hebben dezelfde inhoud (bekijk ook FooterText, FooterTextLeft en FooterTextRight )
FooterBackColor (long)
kleur van de achtergrond van de voettekst
FooterBackGraphicURL (String)
URL van de afbeelding voor de achtergrond die u wilt gebruiken
FooterBackGraphicFilter (String)
naam van het filter voor het interpreteren van de afbeelding voor de achtergrond voor de voettekst
FooterBackGraphicLocation (Enum)
positie van de afbeelding voor de voettekst (waarde die overeenkomt met de opsomming com.sun.star.style.GraphicLocation)
FooterBackTransparent (Boolean)
geeft de achtergrond van de voettekst transparant weer
FooterShadowFormat (struct)
details van de schaduw van de voettekst (structuur com.sun.star.table.ShadowFormat)

Wijzigen van de tekst van kop- en voetteksten

De inhoud van kop- en voetteksten in een werkblad wordt toegankelijk via de volgende eigenschappen:

LeftPageHeaderContent (Object)
inhoud van kopteksten op even pagina's (service com.sun.star.sheet.HeaderFooterContent)
RightPageHeaderContent (Object)
inhoud van kopteksten op oneven pagina's (service com.sun.star.sheet.HeaderFooterContent)
LeftPageFooterContent (Object)
inhoud van kvoetteksten op even pagina's (service com.sun.star.sheet.HeaderFooterContent)
RightPageFooterContent (Object)
inhoud van voetteksten op oneven pagina's(service com.sun.star.sheet.HeaderFooterContent)

Als u geen onderscheid hoeft te maken tussen kop- of voetteksten voor even en oneven pagina's (de eigenschap FooterIsShared is False), stel de eigenschappen voor kop- en voetteksten dan in op oneven pagina's.

Alle genoemde objecten geven een object terug dat de service com.sun.star.sheet.HeaderFooterContent ondersteunt. Door middel van de (niet-oorspronkelijke) eigenschappen LeftText, CenterText en RightText verschaft deze service drie tekstelementen voor de kop- en voetteksten van Apache OpenOffice Calc.

Het volgende voorbeeld schrijft de waarde "Alleen een test." in het linkertekstveld van de koptekst van het opmaakprofiel "Standaard".


Dim Doc As Object
Dim Blad As Object
Dim Opmaakprofielen As Object 
Dim PaginaOpmaakprofielen As Object
Dim DefPagina As Object
Dim KopTekst As Object
Dim KopInhoud As Object
 
Doc = ThisComponent
Opmaakprofielen = Doc.StyleFamilies
PaginaOpmaakprofielen = Opmaakprofielen.getByName("PageStyles")
DefPagina = Opmaakprofielen.getByName("Standaard")
 
DefPagina.HeaderIsOn = True
KopInhoud = DefPagina.RightPageHeaderContent
KopTekst = KopInhoud.LeftText
KopTekst.String = "Alleen een test."
DefPagina.RightPageHeaderContent = KopInhoud

Let op de laatste regel in het voorbeeld: Als de tekst eenmaal is veranderd, moet het object TextContent opnieuw worden toegewezen aan de koptekst zodat de wijziging effectief wordt.

Een ander mechanisme voor het wijzigen van de tekst van kop- of voetteksten is beschikbaar voor tekstdocumenten ((Apache OpenOffice Writer) omdat die bestaan uit één enkel blok van tekst. De volgende eigenschappen worden gedefinieerd in de service com.sun.star.style.PageProperties:

HeaderText (Object)
tekstobject met de inhoud van de koptekst (service com.sun.star.text.XText)
HeaderTextLeft (Object)
tekstobject met de inhoud van de koptekst voor linker pagina's (service com.sun.star.text.XText)
HeaderTextRight (Object)
tekstobject met de inhoud van de koptekst voor rechter pagina's (service com.sun.star.text.XText)
FooterText (Object)
tekstobject met de inhoud van de voettekst (service com.sun.star.text.XText)
FooterTextLeft (Object)
tekstobject met de inhoud van de voettekst voor linker pagina's (service com.sun.star.text.XText)
FooterTextRight (Object)
tekstobject met de inhoud van de voettekst voor rechter pagina's (service com.sun.star.text.XText)

Het volgende voorbeeld maakt een koptekst in het pagina-opmaakprofiel “Standaard” voor tekstdocumenten en voegt de tekst “Alleen een test” aan de koptekst toe.

Dim Doc As Object
Dim Blad As Object
Dim Opmaakprofielen As Object 
Dim PaginaOpmaakprofielen As Object
Dim DefPagina As Object
Dim KopTekst As Object
 
Doc = ThisComponent
Opmaakprofielen = Doc.StyleFamilies
PaginaOpmaakprofielen = Opmaakprofielen.getByName("PageStyles")
DefPagina = PaginaOpmaakprofielen.getByName("Standaard")
 
DefPagina.HeaderIsOn = True
KopTekst = DefPagina.HeaderText 
 
KopTekst.String = "Alleen een test."

In dit geval wordt directe toegang verschaft via de eigenschap HeaderText van het pagina-opmaakprofiel in plaats van via het object HeaderFooterContent.

Centreren (alleen voor werkbladdocumenten)

De service com.sun.star.sheet.TablePageStyle wordt alleen gebruikt in paginaopmaak voor Apache OpenOffice Calc en stelt u in staat celbereiken die u wilt afdrukken te centreren op de pagina. Deze service verschaft de volgende eigenschappen:

CenterHorizontally (Boolean)
tabelinhoud wordt horizontaal gecentreerd
CenterVertically (Boolean)
tabelinhoud wordt verticaal gecentreerd

Definitie van af te drukken elementen (alleen voor werkbladdocumenten)

Als u werkbladen opmaakt kunt u definiëren of elementen van de pagina zichtbaar moeten zijn. Voor dit doel verschaft de service com.sun.star.sheet.TablePageStyle de volgende eigenschappen:

PrintAnnotations (Boolean)
drukt notities voor cellen af
PrintGrid (Boolean)
drukt de randen van de cellen af
PrintHeaders (Boolean)
drukt de rij- en kolomkoppen af
PrintCharts (Boolean)
drukt diagrammen af die zijn opgenomen op een blad
PrintObjects (Boolean)
drukt ingebedde objecten af
PrintDrawing (Boolean)
drukt tekenobjecten af
PrintDownFirst (Boolean)
als de inhoud van een blad zich over meerdere pagina's uitstrekt, worden zij eerst afgedrukt in verticaal aflopende volgorde en dan vanaf de rechterkant.
PrintFormulas (Boolean)
drukt de formules af in plaats van de berekende waarden
PrintZeroValues (Boolean)
drukt nulwaarden af


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