Difference between revisions of "NL/Documentation/BASIC Guide/Editing Spreadsheet Documents"
m (→Rekenen met celbereiken) |
|||
(4 intermediate revisions by 2 users not shown) | |||
Line 11: | Line 11: | ||
== Celbereiken == | == Celbereiken == | ||
− | In aanvulling op een object voor individuele cellen (service <idl>com.sun.star.table.Cell</idl>), verschaft {{ | + | In aanvulling op een object voor individuele cellen (service <idl>com.sun.star.table.Cell</idl>), verschaft {{AOo}} ook objecten die celbereiken vertegenwoordigen. Zulke objecten <tt>CellRange</tt> worden gemaakt met behulp van de aanroep <tt>getCellRangeByName</tt> van het object werkblad: |
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
Dim Blad As Object | Dim Blad As Object | ||
Line 21: | Line 21: | ||
Blad = Doc.Sheets.getByName("Blad 1") | Blad = Doc.Sheets.getByName("Blad 1") | ||
CelBereik = Blad.getCellRangeByName("A1:C15") | CelBereik = Blad.getCellRangeByName("A1:C15") | ||
− | </ | + | </syntaxhighlight> |
Een dubbele punt (:) wordt gebruikt om een celbereik in een werkbladdocument te specificeren. Bijvoorbeeld: A1:C15 vertegenwoordigt alle cellen in de rijen 1 tot en met 15 in de kolommen A, B, en C. | Een dubbele punt (:) wordt gebruikt om een celbereik in een werkbladdocument te specificeren. Bijvoorbeeld: A1:C15 vertegenwoordigt alle cellen in de rijen 1 tot en met 15 in de kolommen A, B, en C. | ||
Line 27: | Line 27: | ||
Als de positie van het celbereik alleen tijdens runtime bekend is, gebruik dan de volgende code: | Als de positie van het celbereik alleen tijdens runtime bekend is, gebruik dan de volgende code: | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
Dim Blad As Object | Dim Blad As Object | ||
Line 35: | Line 35: | ||
Blad = Doc.Sheets.getByName("Blad 1") | Blad = Doc.Sheets.getByName("Blad 1") | ||
CelBereik = Blad.getCellRangeByPosition(0, 0, 2, 14) | CelBereik = Blad.getCellRangeByPosition(0, 0, 2, 14) | ||
− | </ | + | </syntaxhighlight> |
− | De argumenten van | + | De argumenten van <idlm>com.sun.star.sheet.XCellRangesAccess:getCellRangeByPosition</idlm> zijn de positie van de cel linksboven in het bereik, gevolgd door de positie van de cel rechtsonder van hetzelfde bereik. |
− | De | + | De locatie van individuele cellen in een celbereik kunnen worden bepaald met behulp van de methode <tt>getCellByPosition</tt>, waar de coördinaten van de cel linksboven zijn (0, 0). Het volgende voorbeeld gebruikt deze methode om een object te maken van cel C3. |
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
Dim Blad As Object | Dim Blad As Object | ||
Line 51: | Line 51: | ||
CelBereik = Blad.getCellRangeByName("B2:D4") | CelBereik = Blad.getCellRangeByName("B2:D4") | ||
Cel = CelBereik.GetCellByPosition(1, 1) | Cel = CelBereik.GetCellByPosition(1, 1) | ||
− | </ | + | </syntaxhighlight> |
=== Celbereiken opmaken === | === Celbereiken opmaken === | ||
− | Net als individuele cellen, kunt u opmaak toepassen op celbereiken met behulp van de service <idl>com.sun.star.table.CellProperties</idl>. Bekijk [[Documentation/BASIC Guide/Formatting Spreadsheet Documents|Werkbladdocumenten opmaken]] voor meer informatie en voorbeelden van deze service. | + | Net als individuele cellen, kunt u opmaak toepassen op celbereiken met behulp van de service <idl>com.sun.star.table.CellProperties</idl>. Bekijk [[NL/Documentation/BASIC Guide/Formatting Spreadsheet Documents|Werkbladdocumenten opmaken]] voor meer informatie en voorbeelden van deze service. |
=== Rekenen met celbereiken === | === Rekenen met celbereiken === | ||
Line 69: | Line 69: | ||
;<tt>STDEV</tt>:standaard afwijking | ;<tt>STDEV</tt>:standaard afwijking | ||
;<tt>VAR</tt>:variantie | ;<tt>VAR</tt>:variantie | ||
− | ;<tt>STDEVP</tt>: | + | ;<tt>STDEVP</tt>:standaardafwijking gebaseerd op de totale populatie |
;<tt>VARP</tt>:variantie gebaseerd op de totale populatie | ;<tt>VARP</tt>:variantie gebaseerd op de totale populatie | ||
Het volgende voorbeeld berekent de gemiddelde waarde van het bereik <tt>A1:C3</tt> en drukt het resultaat af in een berichtenvenster: | Het volgende voorbeeld berekent de gemiddelde waarde van het bereik <tt>A1:C3</tt> en drukt het resultaat af in een berichtenvenster: | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
Dim Blad As Object | Dim Blad As Object | ||
Line 84: | Line 84: | ||
MsgBox CelBereik.computeFunction(com.sun.star.sheet.GeneralFunction.AVERAGE) | MsgBox CelBereik.computeFunction(com.sun.star.sheet.GeneralFunction.AVERAGE) | ||
− | </ | + | </syntaxhighlight> |
− | {{ | + | {{Warn|De functies VAR, VARP en STDVERP geven een onjuiste waarde terug indien toegepast op een juist gedefinieerd bereik. Zie {{Bug|22625}}.}} |
=== Verwijderen van celinhoud === | === Verwijderen van celinhoud === | ||
Line 93: | Line 93: | ||
Het volgende voorbeeld verwijdert alle tekenreeksen en de directe opmaak uit het celbereik <tt>B2:C3</tt>. | Het volgende voorbeeld verwijdert alle tekenreeksen en de directe opmaak uit het celbereik <tt>B2:C3</tt>. | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
Dim Blad As Object | Dim Blad As Object | ||
Line 107: | Line 107: | ||
CelBereik.clearContents(Vlaggen) | CelBereik.clearContents(Vlaggen) | ||
− | </ | + | </syntaxhighlight> |
De gespecificeerde vlaggen in <tt>clearContents</tt> komen uit de lijst met constanten <idl>com.sun.star.sheet.CellFlags</idl>. Deze lijst verschaft de volgende elementen: | De gespecificeerde vlaggen in <tt>clearContents</tt> komen uit de lijst met constanten <idl>com.sun.star.sheet.CellFlags</idl>. Deze lijst verschaft de volgende elementen: | ||
Line 124: | Line 124: | ||
== Zoeken en vervangen van celinhoud == | == Zoeken en vervangen van celinhoud == | ||
− | Werkbladdocumenten verschaffen, net als tekstdocumenten, een functie voor Zoeken&Vervangen. | + | Werkbladdocumenten verschaffen, net als tekstdocumenten, een functie voor Zoeken & Vervangen. |
De objecten voor beschrijvingen voor Zoeken en Vervangen in werkbladdocumenten worden niet direct gemaakt door het documentobject, maar door de lijst <tt>Sheets</tt>. Het volgende is een voorbeeld van een bewerking Zoeken & vervangen: | De objecten voor beschrijvingen voor Zoeken en Vervangen in werkbladdocumenten worden niet direct gemaakt door het documentobject, maar door de lijst <tt>Sheets</tt>. Het volgende is een voorbeeld van een bewerking Zoeken & vervangen: | ||
− | < | + | <syntaxhighlight lang="oobas"> |
Dim Doc As Object | Dim Doc As Object | ||
Dim Blad As Object | Dim Blad As Object | ||
Line 144: | Line 144: | ||
Blad.ReplaceAll(VervangBeschrijving) | Blad.ReplaceAll(VervangBeschrijving) | ||
Next I | Next I | ||
− | </ | + | </syntaxhighlight> |
Dit voorbeeld gebruikt de eerste pagina van het document om een <tt>ReplaceDescriptor</tt> te maken en past die dan in een lus toe op alle pagina's. | Dit voorbeeld gebruikt de eerste pagina van het document om een <tt>ReplaceDescriptor</tt> te maken en past die dan in een lus toe op alle pagina's. |
Latest revision as of 16:40, 26 August 2022
- De structuur van werkbladdocumenten
- Werkbladdoucmenten bewerken
Waar het voorgaande gedeelte de hoofdstructuur van werkbladdocumenten beschreef, beschrijft dit gedeelte de services die u in staat stellen eenvoudig toegang te krijgen tot individuele cellen of celbereiken.
Contents
Celbereiken
In aanvulling op een object voor individuele cellen (service com.sun.star.table.Cell), verschaft Apache OpenOffice ook objecten die celbereiken vertegenwoordigen. Zulke objecten CellRange worden gemaakt met behulp van de aanroep getCellRangeByName van het object werkblad:
Dim Doc As Object Dim Blad As Object Dim CelBereik As Object Doc = ThisComponent Blad = Doc.Sheets.getByName("Blad 1") CelBereik = Blad.getCellRangeByName("A1:C15")
Een dubbele punt (:) wordt gebruikt om een celbereik in een werkbladdocument te specificeren. Bijvoorbeeld: A1:C15 vertegenwoordigt alle cellen in de rijen 1 tot en met 15 in de kolommen A, B, en C.
Als de positie van het celbereik alleen tijdens runtime bekend is, gebruik dan de volgende code:
Dim Doc As Object Dim Blad As Object Dim CelBereik As Object Doc = ThisComponent Blad = Doc.Sheets.getByName("Blad 1") CelBereik = Blad.getCellRangeByPosition(0, 0, 2, 14)
De argumenten van getCellRangeByPosition zijn de positie van de cel linksboven in het bereik, gevolgd door de positie van de cel rechtsonder van hetzelfde bereik.
De locatie van individuele cellen in een celbereik kunnen worden bepaald met behulp van de methode getCellByPosition, waar de coördinaten van de cel linksboven zijn (0, 0). Het volgende voorbeeld gebruikt deze methode om een object te maken van cel C3.
Dim Doc As Object Dim Blad As Object Dim CelBereik As Object Dim Cel As Object Doc = ThisComponent Blad = Doc.Sheets.getByName("Blad 1") CelBereik = Blad.getCellRangeByName("B2:D4") Cel = CelBereik.GetCellByPosition(1, 1)
Celbereiken opmaken
Net als individuele cellen, kunt u opmaak toepassen op celbereiken met behulp van de service com.sun.star.table.CellProperties. Bekijk Werkbladdocumenten opmaken voor meer informatie en voorbeelden van deze service.
Rekenen met celbereiken
Je kunt de methode computeFunction gebruiken om rekenkundige bewerkingen uit te voeren op celbereiken. De computeFunction verwacht een constante als de parameter die de rekenkundige functie beschrijft die je wilt gebruiken. De geassocieerde constanten worden gedefinieerd in de opsomming com.sun.star.sheet.GeneralFunction. De volgende waarden zijn beschikbaar:
- SUM
- som van alle numerieke waarden
- COUNT
- totaal aantal van alle waarden (inclusief niet-numerieke waarden)
- COUNTNUMS
- totaal aantal van alle numerieke waarden
- AVERAGE
- gemiddelde van alle numerieke waarden
- MAX
- grootste numerieke waarde
- MIN
- kleinste numerieke waarde
- PRODUCT
- product van alle numerieke waarden
- STDEV
- standaard afwijking
- VAR
- variantie
- STDEVP
- standaardafwijking gebaseerd op de totale populatie
- VARP
- variantie gebaseerd op de totale populatie
Het volgende voorbeeld berekent de gemiddelde waarde van het bereik A1:C3 en drukt het resultaat af in een berichtenvenster:
Dim Doc As Object Dim Blad As Object Dim CelBereik As Object Doc = ThisComponent Blad = Doc.Sheets.getByName("Blad 1") CelBereik = Blad.getCellRangeByName("A1:C3") MsgBox CelBereik.computeFunction(com.sun.star.sheet.GeneralFunction.AVERAGE)
De functies VAR, VARP en STDVERP geven een onjuiste waarde terug indien toegepast op een juist gedefinieerd bereik. Zie Issue 22625 . |
Verwijderen van celinhoud
De methode clearContents vereenvoudigt het proces van het verwijderen van celinhoud en celbereiken met dien verstande dat het slechts één specifiek type van inhoud uit een celbereik verwijderd.
Het volgende voorbeeld verwijdert alle tekenreeksen en de directe opmaak uit het celbereik B2:C3.
Dim Doc As Object Dim Blad As Object Dim CelBereik As Object Dim Vlaggen As Long Doc = ThisComponent Blad = Doc.Sheets(0) CelBereik = Blad.getCellRangeByName("B2:C3") Vlaggen = com.sun.star.sheet.CellFlags.STRING + _ com.sun.star.sheet.CellFlags.HARDATTR CelBereik.clearContents(Vlaggen)
De gespecificeerde vlaggen in clearContents komen uit de lijst met constanten com.sun.star.sheet.CellFlags. Deze lijst verschaft de volgende elementen:
- VALUE
- numerieke waarden die niet zijn opgemaakt als datum of tijd
- DATETIME
- numerieke waarden die zijn opgemaakt als datum of tijd
- STRING
- tekenreeksen
- ANNOTATION
- notities die zijn gekoppeld aan cellen
- FORMULA
- formules
- HARDATTR
- directe opmaak van cellen
- STYLES
- indirecte opmaak
- OBJECTS
- tekenobjecten die zijn verbonden met cellen
- EDITATTR
- opmaak van tekens die alleen is toegepast op gedeelten van cellen
U kunt ook de constanten samen toevoegen om verschillende informatie te verwijderen met behulp van een aanroep van clearContents.
Zoeken en vervangen van celinhoud
Werkbladdocumenten verschaffen, net als tekstdocumenten, een functie voor Zoeken & Vervangen.
De objecten voor beschrijvingen voor Zoeken en Vervangen in werkbladdocumenten worden niet direct gemaakt door het documentobject, maar door de lijst Sheets. Het volgende is een voorbeeld van een bewerking Zoeken & vervangen:
Dim Doc As Object Dim Blad As Object Dim VervangBeschrijving As Object Dim I As Integer Doc = ThisComponent Blad = Doc.Sheets(0) VervangBeschrijving = Sheet.createReplaceDescriptor() VervangBeschrijving.SearchString = "is" VervangBeschrijving.ReplaceString = "was" For I = 0 to Doc.Sheets.Count - 1 Blad = Doc.Sheets(I) Blad.ReplaceAll(VervangBeschrijving) Next I
Dit voorbeeld gebruikt de eerste pagina van het document om een ReplaceDescriptor te maken en past die dan in een lus toe op alle pagina's.
Content on this page is licensed under the Public Documentation License (PDL). |