Hver celle i et regneark har en unik adresse, som identificerer cellens placering i regnearket. Tilsvarende har et SheetCellRange også en placering i arket.
For at identificere et SheetCellRange, skal vi kende følgende egenskaber:
- Sheet: Kort heltal som fortæller hvelket ark området er i
- StartColumn: Langt heltal som angiver hvor venstre grænse er
- StartRow: Langt heltal som angiver hvor øvre grænse er
- EndColumn: Langt heltal som angiver hvor højre grænse er
- EndRom: Langt heltal som angiver hvor nedre grænse er
- getCells(): Returnerer en samling af celler som en XEnumerationAccess
- getRangeAddressesAsString():Returnerer en streng med adresserne for en samling af celler. Formatet er som “Ark1.B2:D6;Sheet3.C4:D5”.
- getRangeAddresses(): Returnerer et array af services af typen CellRangeAddress
- getCellByPosition(left, top): Finder en enkelt celle i området på baggrund af indeks
- getCellRangeByPosition(left, top, right, bottom): Findet et celleområde i et andet celleområde på baggrund af indeks
- getCellRangeByName(name): Findet et celleområde i et andet celleområde på baggrund af adressen.
Sub GetSomeinfoRange
oDoc =thisComponent
oSheets = oDoc.Sheets
oRange = oDoc.Sheets(2).getCellRangeByName("A2:B14")
print oRange.AbsoluteName
print oRange.CharFontName
print oRange.CellBackColor
print oRange.CharColor
End sub
Hvis du oplever at en af parametrene returnerer -1 i stedet for noget fornuftigt, så skyldes det at SheetCellRange forudsætter at alle cellerne i området har samme egenskaber. Hvis området indeholder celler med forskellige baggrundsfarver, vil .CellBackColor returnere -1.
I det næste eksempel kan vi sætte visse egenskaber for et helt område:
Sub SetBackgroundRange
oDoc =thisComponent
oSheets = oDoc.Sheets
oRange = oDoc.Sheets(2).getCellRangeByName("A2:B14")
oRange.CellBackColor=rgb(100,100,100)
oRange.CharColor=rgb(255,255,255)
End sub
Til sidst et mere komplekst eksempel, hvor vi sætter valideringsregler på et helt område:
Sub SetValidationRange
oDoc = thisComponent
oRange = oDoc.Sheets(2).getCellRangeByName(""A2:B14")
oValidation = oRange.Validation
oValidation.Type = com.sun.star.sheet.ValidationType.DECIMAL
oValidation.ErrorMessage = "Please enter a number between one and ten"
oValidation.ShowErrorMessage = True
oValidation.ErrorAlertStyle = com.sun.star.sheet.ValidationAlertStyle.STOP
oValidation.setOperator(com.sun.star.sheet.ConditionOperator.BETWEEN)
oValidation.setFormula1(1.0)
oValidation.setFormula2(10.0)
oRange.Validation = oValidation
End Sub