Difference between revisions of "NL/Documentation/BASIC Guide/Structure of Spreadsheets"
m (→Bladen hernoemen) |
m (→Bladen maken en verwijderen) |
||
(4 intermediate revisions by 2 users not shown) | |||
Line 11: | Line 11: | ||
Elk van deze documenten kan meerdere werkbladen bevatten. In deze gids is een tabel-gebaseerd document of werkbladdocument het gehele document, waar een werkblad (of afgekort: blad ) een werkblad (tabel) in het document is. | Elk van deze documenten kan meerdere werkbladen bevatten. In deze gids is een tabel-gebaseerd document of werkbladdocument het gehele document, waar een werkblad (of afgekort: blad ) een werkblad (tabel) in het document is. | ||
− | {{Documentation/VBAnote|Voor werkbladdocumenten en hun inhoud wordt in VBA en {{ | + | {{Documentation/VBAnote|Voor werkbladdocumenten en hun inhoud wordt in VBA en {{AOo}} BASIC een verschillende terminologie gebruikt. Waar het documentobject in VBA een Workbook wordt genoemd en de individuele pagina's Worksheets, worden zij SpreadsheetDocument en Sheet genoemd in {{AOo}} BASIC.}} |
== Werkbladen == | == Werkbladen == | ||
Line 21: | Line 21: | ||
'''Voorbeeld 1: toegang door middel van het nummer (nummering begint met 0)''' | '''Voorbeeld 1: toegang door middel van het nummer (nummering begint met 0)''' | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
Dim Blad As Object | Dim Blad As Object | ||
Line 27: | Line 27: | ||
Doc = ThisComponent | Doc = ThisComponent | ||
Blad = Doc.Sheets (0) | Blad = Doc.Sheets (0) | ||
− | </ | + | </syntaxhighlight> |
− | {{ | + | {{Note|<tt>ThisComponent</tt> geeft het huidige actieve document terug. |
− | De uitdrukking <code>Doc.Sheets(0)</code> is een vereenvoudiging voor BASIC van de aanroep van de API: < | + | De uitdrukking <code>Doc.Sheets(0)</code> is een vereenvoudiging voor BASIC van de aanroep van de API: |
+ | <syntaxhighlight lang="oobas">Doc.getSheets.getByIndex(0)</syntaxhighlight>}} | ||
'''Voorbeeld 2: toegang door middel van de naam''' | '''Voorbeeld 2: toegang door middel van de naam''' | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
Dim Blad As Object | Dim Blad As Object | ||
Line 41: | Line 42: | ||
Doc = ThisComponent | Doc = ThisComponent | ||
Blad = Doc.Sheets.getByName("Blad 1") | Blad = Doc.Sheets.getByName("Blad 1") | ||
− | </ | + | </syntaxhighlight> |
In het eerste voorbeeld wordt toegang tot het werkblad verkregen via zijn nummer (nummering begint bij 0). In het tweede voorbeeld wordt toegang tot het | In het eerste voorbeeld wordt toegang tot het werkblad verkregen via zijn nummer (nummering begint bij 0). In het tweede voorbeeld wordt toegang tot het | ||
Line 55: | Line 56: | ||
Een blad verschaft de methoden <code>getName</code> en <code>setName</code> om zijn naam te lezen en aan te passen. BASIC kan beide methoden behandelen als de eigenschap <code>Name</code>. Hier geven we het eerste blad van het werkbladdocument een andere naam. | Een blad verschaft de methoden <code>getName</code> en <code>setName</code> om zijn naam te lezen en aan te passen. BASIC kan beide methoden behandelen als de eigenschap <code>Name</code>. Hier geven we het eerste blad van het werkbladdocument een andere naam. | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
− | Dim | + | Dim Blad As Object |
Doc = ThisComponent | Doc = ThisComponent | ||
− | + | Blad = Doc.Sheets(0) | |
− | + | Blad.Name = "Eerste" | |
− | </ | + | </syntaxhighlight> |
=== Bladen maken en verwijderen === | === Bladen maken en verwijderen === | ||
− | De container <tt>Sheets</tt> van een <tt>werkblad</tt>-document wordt gebruikt om individuele bladen te maken en te verwijderen. Het volgende voorbeeld gebruikt de methode <tt>hasByName</tt> om te controleren of een blad, genaamd '''MijnBlad''' bestaat. Als dat niet het geval is bepaalt de methode een overeenkomstige verwijzing naar het object door de methode <tt>getByName</tt> te gebruiken en slaat dan de verwijzing op in een variabele in <tt>Blad</tt>. Als het overeenkomstige blad niet bestaat wordt het gemaakt met behulp van de aanroep <tt>createInstance</tt> en ingevoegd in het werkbladdocument door de methode <tt>insertByName</tt>. | + | De container <tt>Sheets</tt> van een <tt>werkblad</tt>-document wordt gebruikt om individuele bladen te maken en te verwijderen. Het volgende voorbeeld gebruikt de methode <tt>hasByName</tt> om te controleren of een blad, genaamd '''MijnBlad''' bestaat. Als dat niet het geval is, bepaalt de methode een overeenkomstige verwijzing naar het object door de methode <tt>getByName</tt> te gebruiken en slaat dan de verwijzing op in een variabele in <tt>Blad</tt>. Als het overeenkomstige blad niet bestaat wordt het gemaakt met behulp van de aanroep <tt>createInstance</tt> en ingevoegd in het werkbladdocument door de methode <tt>insertByName</tt>. |
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
Dim Blad As Object | Dim Blad As Object | ||
Line 80: | Line 81: | ||
Doc.Sheets.insertByName("MijnBlad", Blad) | Doc.Sheets.insertByName("MijnBlad", Blad) | ||
End If | End If | ||
− | </ | + | </syntaxhighlight> |
− | De methoden <tt>hasByName</tt>, <tt>getByName</tt> en <tt>insertByName</tt> worden verkregen uit de interface <idl>com.sun.star.container.XNameContainer</idl> zoals | + | De methoden <tt>hasByName</tt>, <tt>getByName</tt> en <tt>insertByName</tt> worden verkregen uit de interface <idl>com.sun.star.container.XNameContainer</idl> zoals beschreven in [[NL/Documentation/BASIC Guide/API Intro|Introductie tot de API]]. |
De interface <idl>com.sun.star.sheet.Spreadsheets</idl> verschaft een betere methode om een nieuw blad te maken: <code>insertNewByName</code>. | De interface <idl>com.sun.star.sheet.Spreadsheets</idl> verschaft een betere methode om een nieuw blad te maken: <code>insertNewByName</code>. | ||
Het voegt een nieuw blad in met de door het eerste argument gespecificeerde naam, op de door het tweede argument gespecificeerde positie. | Het voegt een nieuw blad in met de door het eerste argument gespecificeerde naam, op de door het tweede argument gespecificeerde positie. | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
Line 93: | Line 94: | ||
Doc.Sheets.insertNewByName("AnderBlad", 2) | Doc.Sheets.insertNewByName("AnderBlad", 2) | ||
− | </ | + | </syntaxhighlight> |
Dezelfde interface verschaft de methoden <code>moveByName</code> en <code>copyByName</code>. | Dezelfde interface verschaft de methoden <code>moveByName</code> en <code>copyByName</code>. | ||
Line 99: | Line 100: | ||
De interface <idl>com.sun.star.container.XNameContainer</idl> verschaft een methode om een blad met een bepaalde naam te verwijderen: | De interface <idl>com.sun.star.container.XNameContainer</idl> verschaft een methode om een blad met een bepaalde naam te verwijderen: | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
Line 105: | Line 106: | ||
Doc.Sheets.removeByName("AnderBlad") | Doc.Sheets.removeByName("AnderBlad") | ||
− | </ | + | </syntaxhighlight> |
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Structure of Spreadsheets}} | {{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Structure of Spreadsheets}} | ||
{{PDL1}} | {{PDL1}} |
Latest revision as of 16:33, 26 August 2022
- De structuur van werkbladdocumenten
- Werkbladdoucmenten bewerken
Het document-object van een werkbladdocument is gebaseerd op de service com.sun.star.sheet.SpreadsheetDocument. Elk van deze documenten kan meerdere werkbladen bevatten. In deze gids is een tabel-gebaseerd document of werkbladdocument het gehele document, waar een werkblad (of afgekort: blad ) een werkblad (tabel) in het document is.
Werkbladen
U kunt de individuele werkbladen van een werkbladdocument benaderen via de lijst Sheets.
Het volgende voorbeeld toont u hoe u een werkblad kunt benaderen, ofwel via zijn nummer ofwel via zijn naam.
Voorbeeld 1: toegang door middel van het nummer (nummering begint met 0)
Dim Doc As Object Dim Blad As Object Doc = ThisComponent Blad = Doc.Sheets (0)
ThisComponent geeft het huidige actieve document terug.
De uitdrukking Doc.getSheets.getByIndex(0) |
Voorbeeld 2: toegang door middel van de naam
Dim Doc As Object Dim Blad As Object Doc = ThisComponent Blad = Doc.Sheets.getByName("Blad 1")
In het eerste voorbeeld wordt toegang tot het werkblad verkregen via zijn nummer (nummering begint bij 0). In het tweede voorbeeld wordt toegang tot het werkblad verkregen via zijn naam en de methode getByName.
Het object Blad dat wordt verkregen door de methode getByName ondersteunt de service com.sun.star.sheet.Spreadsheet. In aanvulling op het verschaffen van verschillende interfaces voor het bewerken van de inhoud, verschaft deze service de volgende eigenschappen:
- IsVisible (Boolean)
- waarde True als het werkblad zichtbaar is.
- PageStyle (String)
- naam van het opmaakprofiel voor de pagina van het werkblad.
Bladen hernoemen
Een blad verschaft de methoden getName
en setName
om zijn naam te lezen en aan te passen. BASIC kan beide methoden behandelen als de eigenschap Name
. Hier geven we het eerste blad van het werkbladdocument een andere naam.
Dim Doc As Object Dim Blad As Object Doc = ThisComponent Blad = Doc.Sheets(0) Blad.Name = "Eerste"
Bladen maken en verwijderen
De container Sheets van een werkblad-document wordt gebruikt om individuele bladen te maken en te verwijderen. Het volgende voorbeeld gebruikt de methode hasByName om te controleren of een blad, genaamd MijnBlad bestaat. Als dat niet het geval is, bepaalt de methode een overeenkomstige verwijzing naar het object door de methode getByName te gebruiken en slaat dan de verwijzing op in een variabele in Blad. Als het overeenkomstige blad niet bestaat wordt het gemaakt met behulp van de aanroep createInstance en ingevoegd in het werkbladdocument door de methode insertByName.
Dim Doc As Object Dim Blad As Object Doc = ThisComponent If Doc.Sheets.hasByName("MijnBlad") Then Blad = Doc.Sheets.getByName("MijnBlad") Else Blad = Doc.createInstance("com.sun.star.sheet.Spreadsheet") Doc.Sheets.insertByName("MijnBlad", Blad) End If
De methoden hasByName, getByName en insertByName worden verkregen uit de interface com.sun.star.container.XNameContainer zoals beschreven in Introductie tot de API.
De interface com.sun.star.sheet.Spreadsheets verschaft een betere methode om een nieuw blad te maken: insertNewByName
.
Het voegt een nieuw blad in met de door het eerste argument gespecificeerde naam, op de door het tweede argument gespecificeerde positie.
Dim Doc As Object Doc = ThisComponent Doc.Sheets.insertNewByName("AnderBlad", 2)
Dezelfde interface verschaft de methoden moveByName
en copyByName
.
De interface com.sun.star.container.XNameContainer verschaft een methode om een blad met een bepaalde naam te verwijderen:
Dim Doc As Object Doc = ThisComponent Doc.Sheets.removeByName("AnderBlad")
Content on this page is licensed under the Public Documentation License (PDL). |