Difference between revisions of "NL/Documentation/BASIC Guide/Editing Spreadsheet Documents"

From Apache OpenOffice Wiki
Jump to: navigation, search
(Created page with "{{NL/Documentation/BASICGuideTOC/v2 |ShowPrevNext=block |ShowPrevPage=block |PrevPage=NL/Documentation/BASIC Guide/Structure of Spreadsheets |NextPage=NL/Documentation/BASIC G..." (tussenstap opslaan))
 
m (Rekenen met celbereiken)
 
(6 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 {{OOo}} ook objecten die celbereiken vertegenwoordigen. Zulke objecten <tt>CellRange</tt> worden gemaakt met behulp van de aanroep <tt>getCellRangeByName</tt> van het object werkblad:
+
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:
  
<source lang="oobas">
+
<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")
</source>
+
</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.
  
Als de positie va het celbereik allen 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:
  
<source lang="oobas">
+
<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)
</source>
+
</syntaxhighlight>
  
The arguments of [http://api.openoffice.org/docs/common/ref/com/sun/star/sheet/XCellRangesAccess.html#getCellRangeByPosition <code>getCellRangeByPosition</code>] are the position of the upper left cell of the range, followed by the position of the bottom right cell of the same range.
+
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.
  
The location of individual cells in a cell range can be determined using the <tt>getCellByPosition</tt> method, where the coordinates of the top left cell in the cell range is (0, 0). The following example uses this method to create an object of cell C3.
+
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.
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
Dim Doc As Object
 
Dim Doc As Object
Dim Sheet As Object
+
Dim Blad As Object
Dim CellRange As Object
+
Dim CelBereik As Object
Dim Cell As Object
+
Dim Cel As Object
  
 
Doc = ThisComponent
 
Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
+
Blad = Doc.Sheets.getByName("Blad 1")
CellRange = Sheet.getCellRangeByName("B2:D4")
+
CelBereik = Blad.getCellRangeByName("B2:D4")
Cell = CellRange.GetCellByPosition(1, 1)
+
Cel = CelBereik.GetCellByPosition(1, 1)
</source>
+
</syntaxhighlight>
  
=== Formatting Cell Ranges ===
+
=== Celbereiken opmaken ===
Just like individual cells, you can apply formatting to cell ranges using the <idl>com.sun.star.table.CellProperties</idl> service. For more information and examples of this service, see [[Documentation/BASIC Guide/Formatting Spreadsheet Documents|Formatting Spreadsheet Documents]].
+
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.
  
=== Computing With Cell Ranges ===
+
=== Rekenen met celbereiken ===
You can use the <tt>computeFunction</tt> method to perform mathematical operations on cell ranges. The <tt>computeFunction</tt> expects a constant as the parameter that describes the mathematical function that you want to use. The associated constants are defined in the <idl>com.sun.star.sheet.GeneralFunction</idl> enumeration. The following values are available:
+
Je kunt de methode <tt>computeFunction</tt> gebruiken om rekenkundige bewerkingen uit te voeren op celbereiken.
 +
De <tt>computeFunction</tt> verwacht een constante als de parameter die de rekenkundige functie beschrijft die je wilt gebruiken. De geassocieerde constanten worden gedefinieerd in de opsomming <idl>com.sun.star.sheet.GeneralFunction</idl>. De volgende waarden zijn beschikbaar:
  
;<tt>SUM</tt>:sum of all numerical values
+
;<tt>SUM</tt>:som van alle numerieke waarden
;<tt>COUNT</tt>:total number of all values (including non-numerical values)
+
;<tt>COUNT</tt>:totaal aantal van alle waarden (inclusief niet-numerieke waarden)
;<tt>COUNTNUMS</tt>:total number of all numerical values
+
;<tt>COUNTNUMS</tt>:totaal aantal van alle numerieke waarden
;<tt>AVERAGE</tt>:average of all numerical values
+
;<tt>AVERAGE</tt>:gemiddelde van alle numerieke waarden
;<tt>MAX</tt>:largest numerical value
+
;<tt>MAX</tt>:grootste numerieke waarde
;<tt>MIN</tt>:smallest numerical value
+
;<tt>MIN</tt>:kleinste numerieke waarde
;<tt>PRODUCT</tt>:product of all numerical values
+
;<tt>PRODUCT</tt>:product van alle numerieke waarden
;<tt>STDEV</tt>:standard deviation
+
;<tt>STDEV</tt>:standaard afwijking
;<tt>VAR</tt>:variance
+
;<tt>VAR</tt>:variantie
;<tt>STDEVP</tt>:standard deviation based on the total population
+
;<tt>STDEVP</tt>:standaardafwijking gebaseerd op de totale populatie
;<tt>VARP</tt>:variance based on the total population
+
;<tt>VARP</tt>:variantie gebaseerd op de totale populatie
  
The following example computes the average value of the <tt>A1:C3</tt> range and prints the result in a message box:
+
Het volgende voorbeeld berekent de gemiddelde waarde van het bereik <tt>A1:C3</tt> en drukt het resultaat af in een berichtenvenster:
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
Dim Doc As Object
 
Dim Doc As Object
Dim Sheet As Object
+
Dim Blad As Object
Dim CellRange As Object
+
Dim CelBereik As Object
  
 
Doc = ThisComponent
 
Doc = ThisComponent
Sheet = Doc.Sheets.getByName("Sheet 1")
+
Blad = Doc.Sheets.getByName("Blad 1")
CellRange = Sheet.getCellRangeByName("A1:C3")
+
CelBereik = Blad.getCellRangeByName("A1:C3")
  
MsgBox CellRange.computeFunction(com.sun.star.sheet.GeneralFunction.AVERAGE)
+
MsgBox CelBereik.computeFunction(com.sun.star.sheet.GeneralFunction.AVERAGE)
</source>
+
</syntaxhighlight>
  
{{Documentation/Caution|Functions VAR, VARP, STDVERP return an incorrect value when applied to a properly defined range. See {{bug|22625}}.}}
+
{{Warn|De functies VAR, VARP en STDVERP geven een onjuiste waarde terug indien toegepast op een juist gedefinieerd bereik. Zie {{Bug|22625}}.}}
  
=== Deleting Cell Contents ===
+
=== Verwijderen van celinhoud ===
The <tt>clearContents</tt> method simplifies the process of deleting cell contents and cell ranges in that it deletes one specific type of content from a cell range.
+
De methode <tt>clearContents</tt> 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.
  
The following example removes all the strings and the direct formatting information from the <tt>B2:C3</tt> range.
+
Het volgende voorbeeld verwijdert alle tekenreeksen en de directe opmaak uit het celbereik <tt>B2:C3</tt>.
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
Dim Doc As Object
 
Dim Doc As Object
Dim Sheet As Object
+
Dim Blad As Object
Dim CellRange As Object
+
Dim CelBereik As Object
Dim Flags As Long
+
Dim Vlaggen As Long
  
 
Doc = ThisComponent
 
Doc = ThisComponent
Sheet = Doc.Sheets(0)
+
Blad = Doc.Sheets(0)
CellRange = Sheet.getCellRangeByName("B2:C3")
+
CelBereik = Blad.getCellRangeByName("B2:C3")
  
Flags = com.sun.star.sheet.CellFlags.STRING + _
+
Vlaggen = com.sun.star.sheet.CellFlags.STRING + _
 
       com.sun.star.sheet.CellFlags.HARDATTR
 
       com.sun.star.sheet.CellFlags.HARDATTR
  
CellRange.clearContents(Flags)
+
CelBereik.clearContents(Vlaggen)
</source>
+
</syntaxhighlight>
  
The flags specified in <tt>clearContents</tt> come from the <idl>com.sun.star.sheet.CellFlags</idl> constants list. This list provides the following elements:
+
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:
  
;<tt>VALUE</tt>:numerical values that are not formatted as date or time
+
;<tt>VALUE</tt>:numerieke waarden die niet zijn opgemaakt als datum of tijd
;<tt>DATETIME</tt>:numerical values that are formatted as date or time
+
;<tt>DATETIME</tt>:numerieke waarden die zijn opgemaakt als datum of tijd
;<tt>STRING</tt>:strings
+
;<tt>STRING</tt>:tekenreeksen
;<tt>ANNOTATION</tt>:comments that are linked to cells
+
;<tt>ANNOTATION</tt>:notities die zijn gekoppeld aan cellen
;<tt>FORMULA</tt>:formulas
+
;<tt>FORMULA</tt>:formules
;<tt>HARDATTR</tt>:direct formatting of cells
+
;<tt>HARDATTR</tt>:directe opmaak van cellen
;<tt>STYLES</tt>:indirect formatting
+
;<tt>STYLES</tt>:indirecte opmaak
;<tt>OBJECTS</tt>:drawing objects that are connected to cells
+
;<tt>OBJECTS</tt>:tekenobjecten die zijn verbonden met cellen
;<tt>EDITATTR</tt>:character formatting that only applies to parts of the cells
+
;<tt>EDITATTR</tt>:opmaak van tekens die alleen is toegepast op gedeelten van cellen
  
You can also add the constants together to delete different information using a call from <tt>clearContents</tt>.
+
U kunt ook de constanten samen toevoegen om verschillende informatie te verwijderen met behulp van een aanroep van <tt>clearContents</tt>.
  
== Searching and Replacing Cell Contents ==
+
== Zoeken en vervangen van celinhoud ==
Spreadsheet documents, like text documents, provide a function for searching and replacing.
+
Werkbladdocumenten verschaffen, net als tekstdocumenten, een functie voor Zoeken & Vervangen.
  
The descriptor objects for searching and replacing in spreadsheet documents are not created directly through the document object, but rather through the <tt>Sheets</tt> list. The following is an example of a search and replace process:
+
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:
  
<source lang="oobas">
+
<syntaxhighlight lang="oobas">
 
Dim Doc As Object
 
Dim Doc As Object
Dim Sheet As Object
+
Dim Blad As Object
Dim ReplaceDescriptor As Object
+
Dim VervangBeschrijving As Object
 
Dim I As Integer
 
Dim I As Integer
  
 
Doc = ThisComponent
 
Doc = ThisComponent
Sheet = Doc.Sheets(0)
+
Blad = Doc.Sheets(0)
  
ReplaceDescriptor = Sheet.createReplaceDescriptor()
+
VervangBeschrijving = Sheet.createReplaceDescriptor()
ReplaceDescriptor.SearchString = "is"
+
VervangBeschrijving.SearchString = "is"
ReplaceDescriptor.ReplaceString = "was"
+
VervangBeschrijving.ReplaceString = "was"
 
For I = 0 to Doc.Sheets.Count - 1
 
For I = 0 to Doc.Sheets.Count - 1
   Sheet = Doc.Sheets(I)
+
   Blad = Doc.Sheets(I)
   Sheet.ReplaceAll(ReplaceDescriptor)  
+
   Blad.ReplaceAll(VervangBeschrijving)  
 
Next I
 
Next I
</source>
+
</syntaxhighlight>
 
+
This example uses the first page of the document to create a <tt>ReplaceDescriptor</tt> and then applies this to all pages in a loop.
+
  
 +
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.
 
   
 
   
 
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Editing Spreadsheet Documents}}
 
{{InterWiki Languages BasicGuide|articletitle=Documentation/BASIC Guide/Editing Spreadsheet Documents}}
 
{{PDL1}}
 
{{PDL1}}

Latest revision as of 16:40, 26 August 2022

Book.png


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.

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)
Documentation caution.png 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).
Personal tools