SFDocuments.Calc-tjeneste

Innhold

# SFDocuments.Calc tjeneste

Det delte biblioteket SFDocuments gir en rekke metoder og egenskaper for å forenkle administrasjon og håndtering av LibreOffice-dokumenter.

Tjenesten SFDocuments.Calc er en underklasse av SFDocuments.Document tjeneste. Alle metoder og egenskaper definert for Dokument-tjenesten kan også nås ved å bruke en Calc-tjenesteforekomst.

Tjenesten Calc er fokusert på:

- Håndtering av ark i et Calc-dokument (kopiere, sette inn, flytte osv.)

- Utveksling av data mellom grunnleggende datastrukturer og Calc-områder

- Kopiering og import av enorme mengder data

- Enkel formatering av celleområde

Denne hjelpesiden beskriver metoder og egenskaper som bare gjelder for Calc-dokumenter.

## Tjenestepåkallelse

Før du bruker Calc-tjenesten, må ScriptForge-biblioteket lastes eller importeres:

• Grunnleggende makroer krever å laste ScriptForge-biblioteket ved hjelp av følgende setning:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-skript krever import fra scriptforge-modulen:
fra scriptforge import CreateScriptService

Tjenesten Calc er nært knyttet til UI-tjenesten til ScriptForge-biblioteket. Nedenfor er noen eksempler på hvordan Calc-tjenesten kan påkalles.

##### I Basic

Kodesnutten nedenfor oppretter en Calc-tjenesteforekomst som tilsvarer det aktive Calc-dokumentet.

        Set oDoc = CreateScriptService("Calc")

En annen måte å opprette en forekomst av Calc-tjenesten på er å bruke UI-tjenesten. I følgende eksempel opprettes et nytt Calc-dokument og oDoc er en Calc-tjenesteforekomst:

        Dim ui As Object, oDoc As Object
        Set ui = CreateScriptService("UI")
        Set oDoc = ui.CreateDocument("Calc")

Eller ved å bruke OpenDocument-metoden fra UI-tjenesten:

        Set oDoc = ui.OpenDocument("C:\Documents\MyFile.ods")

Det er også mulig å instansiere Calc-tjenesten ved å spesifisere et vindusnavn for CreateScriptService-metoden:

        Dim oDoc As Object
        Set oDoc = CreateScriptService("SFDocuments.Calc", "MyFile.ods")

I eksemplet ovenfor er "MyFile.ods" navnet på et åpent dokumentvindu. Hvis dette argumentet ikke er oppgitt, vurderes det aktive vinduet.

Det er også mulig å starte Calc-tjenesten ved å bruke dokumentet som refereres til av ThisComponent. Dette er spesielt nyttig når du kjører en makro fra Basic IDE.

        Dim oDoc As Object
        Set oDoc = CreateScriptService("Calc", ThisComponent)

Det anbefales å frigjøre ressurser etter bruk:

        Set oDoc = oDoc.Dispose()

Men hvis dokumentet ble lukket med CloseDocument-metoden, blir det unødvendig å frigjøre ressurser ved å bruke kommandoen beskrevet ovenfor.

##### I Python

        myDoc = CreateScriptService("Calc")

        ui = CreateScriptService("UI")
        myDoc = ui.CreateDocument("Calc")

        myDoc = ui.OpenDocument(r"C:\Documents\MyFile.ods")

        myDoc = CreateScriptService("SFDocuments.Calc", "MyFile.ods")
        myDoc.Dispose()

        bas = CreateScriptService("Basic")
        myDoc = CreateScriptService("Calc", bas.ThisComponent)

Bruken av prefikset "SFDocuments." mens du anroper tjenesten er valgfritt.

## Definisjoner

Mange metoder krever et "Ark" eller et "Område" som argument. Enkeltceller betraktes som et spesialtilfelle av et Område.

Begge kan uttrykkes enten som en streng eller som en referanse (= objekt) avhengig av situasjonen:

- Innenfor en spesifikk Calc forekomst er ark og områder gitt som strenger som "Ark1" og "D2:F6".

- I tillegg returnerer egenskapene .Ark og .Område en referanse som kan brukes som argument for en metode kalt fra en annen forekomst av en Calc tjeneste.

### Eksempel:

Eksemplet nedenfor kopierer data fra dokument A (åpnet som skrivebeskyttet og skjult) til dokument B.

##### I Basic

        Dim oDocA As Object, oDocB As Object
        Set oDocA = ui.OpenDocument("C:\Documents\FileA.ods", Hidden := True, ReadOnly := True)
        Set oDocB = ui.OpenDocument("C:\Documents\FileB.ods")
        oDocB.CopyToRange(oDocA.Range("SheetX.D4:F8"), "D2:F6") 'CopyToRange(source, target)

##### I Python

        docA = ui.OpenDocument(r"C:\Documents\FileA.ods", hidden = True, readonly = True)
        docB = ui.OpenDocument(r"C:\Documents\FileB.ods")
        docB.CopyToRange(docA.Range("SheetX.D4:F8"), "D2:F6")

### SheetName

Enten arknavnet som en streng eller et objekt produsert av egenskapen .Ark.

Snarveien "~" (tilde) representerer gjeldende ark.

### RangeName

Enten en streng som angir et sett med sammenhengende celler plassert i et ark av gjeldende forekomst eller et objekt produsert av egenskapen .Område.

Snarveien "~" (tilde) representerer gjeldende utvalg eller det første valgte området hvis flere områder er valgt.

Snarveien "*" representerer alle brukte celler.

Arknavnet er valgfritt når du definerer et område. Hvis det ikke er oppgitt noe arknavn, brukes det aktive arket. Omkringliggende enkeltanførselstegn og $-tegn er tillatt, men ignoreres.

Når du spesifiserer et ArkNavne som en streng, kreves det bruk av enkle anførselstegn for å omslutte arknavnet hvis navnet inneholder tomme mellomrom " " eller punktum ".".

Eksemplene nedenfor illustrerer i hvilke tilfeller bruk av enkle anførselstegn er obligatorisk:

          ' Bruk av enkle anførselstegn er valgfritt
          oDoc.clearAll("SheetA.A1:B10")
          oDoc.clearAll("'SheetA'.A1:B10")
          ' Bruk av enkle anførselstegn er påkrevd
          oDoc.clearAll("'Sheet.A'.A1:B10")

Bortsett fra egenskapen GjeldendeUtvalg, vurderer tjenesten Calc bare enkeltområder med celler.

Eksempler på gyldige områder
1) $'ArkX'.D2 2) $D$2 | En enkelt celle
1) $'ArkX'.D2:F6 2) D2:D10 | Enkelt område med flere celler
$'ArkX'.* | Alle brukte celler i det aktuelle arket
1) $'Ark'.AS:A (kolonne A) 2) 3:5 (rad 3 til 5) | Alle celler i sammenhengende kolonner eller rader opp til den sist brukte cellen
mittOmråde | Et område kalt "mittOmråde" på regnearknivå
1) ~.someRange 2) ArkX.someRange | Et områdenavn på arknivå
myDoc.Range("SheetX.D2:F6") | Et område innenfor arket SheetX i filen knyttet til myDoc Calc-forekomsten
~.~ eller ~ | Det gjeldende utvalget i det aktive arket

## Egenskaper

Alle egenskapene som er generiske for ethvert dokument er implisitt også gjeldende for Calc-dokumenter. For mer informasjon, les hjelpesiden for dokumenttjeneste.

Egenskapene som er spesifikt tilgjengelige for Calc-dokumenter er:

Navn | Skrivebeskyttet | Argument | Returtype | Beskrivelse
--- | --- | --- | --- | ---
CurrentSelection | Nei | Ingen | Strenger eller en rekke strenger | Det enkelt valgte området som en streng eller listen over valgte områder som en matrise.
DefinedNames | Ja | Ingen | Streng eller matrise av strenger | Returnerer den fullstendige sorterte listen over alle navngitte områder i dokumentet. Navnene som er definert i et enkelt ark, er kvalifisert med arknavnet.
FirstCell | Ja | Arknavn eller områdenavn som streng | String | Returnerer den første brukte cellen i et gitt område eller ark.
FirstColumn | Ja | Arknavn eller områdenavn som streng | Long | Returnerer kolonnenummeret lengst til venstre i et gitt område eller ark.
FirstRow | Ja | Arknavn eller områdenavn som streng | Long | Returnerer det øverste radnummeret i et gitt område eller ark.
Height | Ja | Områdenavn som streng | Long | Antall rader (>= 1) i det gitte området.
LastCell | Ja | Arknavn eller områdenavn som streng | String | Returnerer den sist brukte cellen i et gitt område eller ark.
LastColumn | Ja | Arknavn eller områdenavn som streng | Long | Den sist brukte kolonnen i et gitt område eller ark.
LastRow | Ja | Arknavn eller områdenavn som streng | Long | Den sist brukte raden i et gitt område eller ark.
Range | Ja | Områdenavn som streng | Object | En områdereferanse som kan brukes som argument for metoder som Kopier til område.
Region | Ja | Områdenavn som streng | String | Returnerer adressen til det minste området som inneholder det angitte området, slik at området er omgitt av tomme celler eller arkkanter. Dette tilsvarer å bruke Command + *Ctrl + * snarveien til det angitte området.
Sheet | Ja | Arknavn som streng | Object | En arkreferanse som kan brukes som argument for metoder som Kopier ark.
SheetName | Ja | Områdenavn som streng | String | Returnerer arknavnet for en gitt områdeadresse.
Sheets | Ja | Ingen | Matrise med strenger | Listen med navn på alle eksisterende ark.
Width | Ja | Områdenavn som streng | Long | Antall kolonner (>= 1) i det gitte området.
XCellRange | Ja | Områdenavn som streng | Object | Et com.sun.star.Table.XCellRange UNO-objekt.
XRectangle | Ja | Områdenavn som streng | Object | En com.sun.star.awt.Rectangle UNO-struktur, som beskriver, i piksler, området på skjermen der området befinner seg.
XSheetCellCursor | Ja | Områdenavn som streng | Object | Et com.sun.star.sheet.XSheetCellCursor UNO-objekt. Etter å ha flyttet markøren, kan den resulterende områdeadressen nås gjennom AbsoluteName UNO-egenskapen til markørobjektet, som returnerer en strengverdi som kan brukes som argument for egenskaper og metoder for Calc-tjenesten.
XSpreadsheet | Ja | Arknavn som streng | Object | Et com.sun.star.sheet.XSpreadsheet UNO-objekt.

Besøk nettstedet til LibreOffice API Dokumentasjonen for å lære mer om XCellRange, XSheetCellCursor og XSpreadsheet UNO-objekter.

## Metoder

Liste over metoder i Calc-tjenesten
A1Style Activate AlignRange BorderRange Charts ClearAll ClearFormats ClearValues ColorizeRange CompactLeft CompactUp CopySheet CopySheetFromFile CopyToCell CopyToRange CreateChart CreatePivotTable DAvg | DCount DecorateFont DefineName DMax DMin DSum ExportRangeToFile FormatRange Forms GetColumnName GetFormula GetValue ImportFromCSVFile ImportFromDatabase ImportStylesFromFile InsertSheet Intersect MoveRange | MoveSheet Offset OpenRangeSelector PrintOut Printf RemoveDuplicates RemoveSheet RenameSheet SetArray SetCellStyle SetFormula SetValue ShiftDown ShiftLeft ShiftRight ShiftUp SortRange

## A1Style

Returnerer en områdeadresse som en streng basert på ark koordinater, dvs. rad- og kolonnenummer.

Hvis bare et par koordinater er gitt, returneres en adresse til en enkelt celle. Ytterligere argumenter kan spesifisere cellen nederst til høyre i et rektangulært område.

### Syntaks:

svc.A1Style(row1: int, column1: int, row2: int = 0; column2: int = 0; sheetname: str = "~"): str

### Parametre:

rad1, kolonne1: Spesifiser rad- og kolonnenumrene til cellen øverst til venstre i området som skal vurderes. Rad- og kolonnenummer starter på 1.

rad2, kolonne2: Spesifiser rad- og kolonnenumrene til cellen nederst til høyre i området som skal vurderes. Hvis disse argumentene ikke er oppgitt, eller hvis verdier som er mindre enn rad1 og kolonne1 er gitt, er adressen til enkeltcelleområdet representert av rad1 og kolonne1 som returneres.

arknavn: Navnet på arket som skal legges til den returnerte områdeadressen. Arket må eksistere. Standardverdien er "~" som tilsvarer det aktive arket.

### Eksempel:

Eksemplene nedenfor i Basic og Python anser at "Ark1" er det aktive arket.

##### I Basic

        Set oDoc = CreateScriptService("Calc")
        addr1 = oDoc.A1Style(1, 1) ' '$Sheet1'.$A$1
        addr2 = oDoc.A1Style(2, 2, 3, 6) ' '$Sheet1'.$B$2:$F$3
        addr3 = oDoc.A1Style(2, 2, 0, 6) ' '$Sheet1'.$B$2
        addr4 = oDoc.A1Style(3, 4, 3, 8, "Sheet2") ' '$Sheet2'.$D$3:$H$3
        addr5 = oDoc.A1Style(5, 1, SheetName := "Sheet3") ' '$Sheet3'.$A$5

##### I Python

        doc = CreateScriptService("Calc")
        addr1 = doc.A1Style(1, 1) # '$Sheet1'.$A$1
        addr2 = doc.A1Style(2, 2, 3, 6) # '$Sheet1'.$B$2:$F$3
        addr3 = doc.A1Style(2, 2, 0, 6) # '$Sheet1'.$B$2
        addr4 = doc.A1Style(3, 4, 3, 8, "Sheet2") # '$Sheet2'.$D$3:$H$3
        addr5 = doc.A1Style(5, 1, sheetname="Sheet3") # '$Sheet3'.$A$5

Metoden A1Style kan kombineres med alle de mange egenskapene og metodene til Calc-tjenesten som krever et område som argument, for eksempel GetValue, GetFormula, ClearAll osv.

## Activate

Hvis argumentet arknavn er oppgitt, aktiveres det gitte arket og det blir det valgte arket. Hvis argumentet er fraværende, aktiveres dokumentvinduet.

### Syntaks:

svc.Activate(sheetname: str = ""): bool

### Parametre:

arknavn: Navnet på arket som skal aktiveres i dokumentet. Standardverdien er en tom streng, noe som betyr at dokumentvinduet vil aktiveres uten å endre det aktive arket.

### Eksempel:

Eksemplet aktiverer arket kalt "Ark4" i det aktive dokumentet.

##### I Basic

        Dim ui as Variant, oDoc as Object
        Set ui = CreateScriptService("UI")
        Set oDoc = ui.GetDocument(ui.ActiveWindow)
        oDoc.Activate("Sheet4")

##### I Python

        ui = CreateScriptService("UI")
        myDoc = ui.GetDocument(ui.ActiveWindow)
        myDoc.Activate("Sheet4")

Aktivering av et ark gir mening bare hvis det utføres på et Calc-dokument. For å være sikker på at du har et Calc-dokument for hånden kan du bruke egenskapen isCalc til dokumentobjektet, som returnerer Sann hvis det er et Calc-dokument og Usann ellers.

## AlignRange

Juster et celleområde horisontalt eller vertikalt.

En filterformel kan spesifiseres for å bestemme hvilke celler som skal påvirkes.

### Syntaks:

svc.AlignRange(targetrange: str, alignment: str, opt filterformula: str, opt filterscope: str)

### Parametre:

targetrange: Cellen eller området som en streng der cellene skal justeres på nytt.

justering: en streng som kombinerer 1 eller 2 av de neste store bokstavene (andre tegn ignoreres):

- V, H eller C: venstre, høyre eller senter horisontalt.

- B, T eller M: bunn, topp eller senter vertikalt (midten).

filterformula: En Calc-formel som skal brukes på det gitte området for å bestemme hvilke celler som vil bli påvirket. Den angitte formelen må returnere Sann eller Falsk. Hvis dette argumentet ikke er spesifisert, påvirkes alle celler i området.

filterscope: Bestemmer hvordan filterformula utvides til det gitte området. Dette argumentet er obligatorisk hvis en filterformula er spesifisert. Følgende verdier godtas:

- "CELL": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver celle i området.

- "RAD": Formelen som er spesifisert i filterformel-argumentet utvides én gang for hver celle i området.

- "KOLONNE": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver kolonne i området.

### Eksempel:

##### I Basic

          Sentrer alle numeriske celler, både horisontalt og vertikalt.
          doc.AlignRange("SheetX.A1:J30", "Midten,Senter", filterformel := "=IsNumeric(A1)", filterscope := "CELL")

##### I Python

          # Sentrer alle numeriske celler, både horisontalt og vertikalt.
          doc.AlignRange('SheetX.A1:J30', 'Midten,Senter', filterformel = '=IsNumeric(A1)', filterscope = 'CELL')

## BorderRange

Bruk et sett med linjekantlinjer innenfor og rundt et celleområde.

De berørte cellene kan bestemmes med en filterformel og dens omfang.

Alle kantlinjene har samme standardbredde, stil og farge. Eksisterende kantlinjer i de berørte cellene, radene eller kolonnene fjernes først. Andre celler i området forblir urørt.

For å fjerne hele området, sett border til "" og hopp over filterformula-argumentet.

### Syntaks:

svc.BorderRange(targetrange: str, border: str, opt filterformula: str, opt filterscope: str)

### Parametre:

targetrange: Cellen eller området som en streng som rammer skal brukes på.

border: En streng som kombinerer de neste store bokstavene (andre tegn ignoreres):

- B, L, T, R: bunn, venstre, topp, høyre ytre linjer.

- H, V: horisontale, vertikale indre linjer.

- O, N: diagonaler nedenfra og opp, ovenfra og ned.

filterformula: En Calc-formel som skal brukes på det gitte området for å bestemme hvilke celler som vil bli påvirket. Den angitte formelen må returnere Sann eller Falsk. Hvis dette argumentet ikke er spesifisert, påvirkes alle celler i området.

filterscope: Bestemmer hvordan filterformula utvides til det gitte området. Dette argumentet er obligatorisk hvis en filterformula er spesifisert. Følgende verdier godtas:

- "CELL": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver celle i området.

- "RAD": Formelen som er spesifisert i filterformel-argumentet utvides én gang for hver celle i området.

- "KOLONNE": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver kolonne i området.

### Eksempel:

##### I Basic

            ' Sett en bunnlinje om alle numeriske celler, inkludert de horisontale indre linjene.
            doc.BorderRange("SheetX.A1:J30", "HB", filterformel := "=IsNumeric(A1)", filterscope := "CELL")

##### I Python

            # Sett en bunnlinje i grensen mellom alle numeriske celler, inkludert de horisontale indre linjene.
            doc.BorderRange('SheetX.A1:J30', 'HB', filterformel = '=IsNumeric(A1)', filterscope = 'CELL')

## Charts

Returnerer enten listen med navnene på alle kartobjekter i et gitt ark eller en enkelt Diagram tjenesteforekomst.

- Hvis bare arknavn er spesifisert, returneres en nullbasert rekke strenger som inneholder navnene på alle diagrammer.

- Hvis et diagramnavn er oppgitt, returneres et enkelt objekt som tilsvarer det ønskede diagrammet. Det angitte diagrammet må eksistere.

### Syntaks:

svc.Charts(sheetname: str, chartname: str = ""): obj

### Parametre:

arknavn: Navnet på arket som listen over diagrammer skal hentes fra eller hvor det angitte diagrammet er plassert.

kartnavn: Det brukerdefinerte navnet på diagramobjektet som skal returneres. Hvis diagrammet ikke har et brukerdefinert navn, kan det interne objektnavnet brukes. Hvis dette argumentet er fraværende, returneres listen over diagramnavn i det angitte arket.

Bruk sidefeltet Navigator for å sjekke navnene som er tildelt diagrammer under kategorien OLE-objekter.

### Eksempel:

##### I Basic

Eksemplet nedenfor viser antall kartobjekter i "Ark1".

        Dim arrNames as Object
        arrNames = oDoc.Charts("Sheet1")
        MsgBox "There are " & UBound(arrNames) + 1 & " charts in Sheet1"

Følgende eksempel gir tilgang til diagrammet kalt "MyChart" i "Ark1" og skriver ut typen.

        Dim oChart as Object
        oChart = oDoc.Charts("Sheet1", "MyChart")
        MsgBox oChart.ChartType

##### I Python

        bas = CreateScriptService("Basic")
        chart_names = doc.Charts("Sheet1")
        bas.MsgBox(f"There are {len(chart_names)} charts in Sheet1")

        chart = doc.Charts("Sheet1", "MyChart")
        bas.MsgBox(chart.ChartType)

## ClearAll

Sletter alt innhold og formater for det gitte området.

En filterformel kan spesifiseres for å bestemme hvilke celler som skal påvirkes.

### Syntaks:

svc.ClearAll(range: str, opt filterformula: str, opt filterscope: str)

### Parametre:

område: Området som skal slettes, som en streng.

filterformula: En Calc-formel som skal brukes på det gitte området for å bestemme hvilke celler som vil bli påvirket. Den angitte formelen må returnere Sann eller Falsk. Hvis dette argumentet ikke er spesifisert, påvirkes alle celler i området.

filterscope: Bestemmer hvordan filterformula utvides til det gitte området. Dette argumentet er obligatorisk hvis en filterformula er spesifisert. Følgende verdier godtas:

- "CELL": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver celle i området.

- "RAD": Formelen som er spesifisert i filterformel-argumentet utvides én gang for hver celle i området.

- "KOLONNE": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver kolonne i området.

### Eksempel:

##### I Basic

        ' Tømmer alle celler i området ArkX.A1:J10
        oDoc.ClearAll("ArkX.A1:J10")
        ' Fjerner alle celler i området ArkX.A1:J10 som har en verdi større enn 100
        oDoc.ClearAll("ArkX.A1:J10", "=ArkX.A1>100", "CELLE")
        ' Fjerner alle rader i området ArkX.A1:J10 hvis summen er større enn 500
        oDoc.ClearAll("ArkX.A1:J10", "=SUM(ArkX.A1:J1)>500", "RAD")
        ' Tømmer alle kolonner i området ArkX.A1:J10 hvis summen er større enn 500
        oDoc.ClearAll("ArkX.A1:J10", "=SUM(ArkX.A1:A10)>500", "KOLONNE")

##### I Python

        myDoc.ClearAll("ArkX.A1:F10")
        myDoc.ClearAll("ArkX.A1:J10", "=ArkX.A1>100", "CELLE")
        myDoc.ClearAll("arkX.A1:J10", "=SUM(arkX.A1:J1)>500", "RAD")
        myDoc.ClearAll("ArkX.A1:J10", "=SUM(arkX.A1:A10)>500", "KOLONNE")

## ClearFormats

Fjerner formatene og cellestilene i det gitte området.

En filterformel kan spesifiseres for å bestemme hvilke celler som skal påvirkes.

### Syntaks:

svc.ClearFormats(range: str, opt filterformula: str, opt filterscope: str)

### Parametre:

område: Området hvis formater og stiler skal slettes, som en streng.

filterformula: En Calc-formel som skal brukes på det gitte området for å bestemme hvilke celler som vil bli påvirket. Den angitte formelen må returnere Sann eller Falsk. Hvis dette argumentet ikke er spesifisert, påvirkes alle celler i området.

filterscope: Bestemmer hvordan filterformula utvides til det gitte området. Dette argumentet er obligatorisk hvis en filterformula er spesifisert. Følgende verdier godtas:

- "CELL": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver celle i området.

- "RAD": Formelen som er spesifisert i filterformel-argumentet utvides én gang for hver celle i området.

- "KOLONNE": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver kolonne i området.

### Eksempel:

##### I Basic

          oDoc.ClearFormats("SheetX.*")

##### I Python

        myDoc.ClearFormats("SheetX.*")

Se ClearAll metodedokumentasjonen for eksempler på hvordan du bruker argumentene filterformel og filterscope.

## ClearValues

Sletter verdiene og formlene i det gitte området.

En filterformel kan spesifiseres for å bestemme hvilke celler som skal påvirkes.

### Syntaks:

svc.ClearValues(range: str, opt filterformula: str, opt filterscope: str)

### Parametre:

område: Området hvis verdier og formler skal slettes, som en streng.

filterformula: En Calc-formel som skal brukes på det gitte området for å bestemme hvilke celler som vil bli påvirket. Den angitte formelen må returnere Sann eller Falsk. Hvis dette argumentet ikke er spesifisert, påvirkes alle celler i området.

filterscope: Bestemmer hvordan filterformula utvides til det gitte området. Dette argumentet er obligatorisk hvis en filterformula er spesifisert. Følgende verdier godtas:

- "CELL": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver celle i området.

- "RAD": Formelen som er spesifisert i filterformel-argumentet utvides én gang for hver celle i området.

- "KOLONNE": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver kolonne i området.

### Eksempel:

##### I Basic

          oDoc.ClearValues("SheetX.A1:F10")

##### I Python

        myDoc.ClearValues("SheetX.A1:F10")

Se Fjern alt metodedokumentasjonen for eksempler på hvordan du bruker argumentene filterformel og filterscope.

## ColorizeRange

Definer forgrunns- og bakgrunnsfarger for et celleområde.

De berørte cellene kan bestemmes med en filterformel og dens omfang.

### Syntaks:

svc.ColorizeRange(targetrange: str, opt foreground: int, opt background: int, opt filterformula: str, opt filterscope: str)

### Parametre:

targetrange: cellen eller området som en streng der cellene skal (farges på nytt).

forgrunn: forgrunnsfargen som utdata for RGB()-funksjonen. En negativ verdi sletter forgrunnsfargen

bakgrunn: bakgrunnsfargen som utdata for RGB()-funksjonen. En negativ verdi sletter bakgrunnsfargen

filterformula: En Calc-formel som skal brukes på det gitte området for å bestemme hvilke celler som vil bli påvirket. Den angitte formelen må returnere Sann eller Falsk. Hvis dette argumentet ikke er spesifisert, påvirkes alle celler i området.

filterscope: Bestemmer hvordan filterformula utvides til det gitte området. Dette argumentet er obligatorisk hvis en filterformula er spesifisert. Følgende verdier godtas:

- "CELL": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver celle i området.

- "RAD": Formelen som er spesifisert i filterformel-argumentet utvides én gang for hver celle i området.

- "KOLONNE": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver kolonne i området.

### Eksempel:

##### I Basic

            'Mal den/de numeriske cellen(e) i rødt.
            doc.ColorizeRange("SheetX.A1:J30", bakgrunn := RGB(255, 0, 0), filterformel := "=IsNumeric(A1), filterscope := "CELLE")

##### I Python

            # Farg den/de numeriske cellen(e) i rødt.
            basic = CreateScriptService('basic')
            doc.ColorizeRange('SheetX.A1:J30', bakgrunn = basic.RGB(255, 0, 0), filterformel = '=IsNumeric(A1)', filterscope = 'CELLE')

## CompactLeft

Sletter kolonnene i et spesifisert område som samsvarer med et filter uttrykt som en Calc-formel. Filteret brukes på hver kolonne for å bestemme om den skal slettes eller ikke.

Den slettede kolonnen kan begrenses til høyden på det angitte området eller spennet til høyden på hele arket, og dermed slette hele kolonner.

Denne metoden returnerer en streng med områdeadressen til det komprimerte området. Hvis alle kolonner slettes, returneres en tom streng.

Hvis et celleområde er valgt, vil det å anrope denne metoden ikke påvirke utvalget.

### Syntaks:

svc.CompactLeft(range: str, wholecolumn: bool = False, opt filterformula: str): str

### Parametre:

område: Området som kolonner vil bli slettet fra, som en streng.

hele kolonnen: Hvis dette alternativet er satt til Sann vil hele kolonnen bli slettet fra arket. Standardverdien er Usann, som betyr at den slettede kolonnen vil være begrenset til høyden på det angitte området.

filterformel: Filteret som skal brukes på hver kolonne for å avgjøre om den skal slettes eller ikke. Filteret er uttrykt som en Calc-formel som skal brukes på den første kolonnen. Når formelen returnerer Sann for en kolonne, vil den kolonnen bli slettet. Standardfilteret sletter alle tomme kolonner.

Anta for eksempel at området A1:J200 er valgt (høyde = 200), så standardformelen er =(COUNTBLANK(A1:A200)=200). Dette betyr at hvis alle 200 cellene er tomme i den første kolonnen (kolonne A), så slettes kolonnen. Merk at formelen kun er uttrykt med hensyn til den første kolonnen. Internt vil CompactLeft-metoden generalisere denne formelen for alle de gjenværende kolonnene.

Calc-funksjoner brukt i filterformula-argumentet må uttrykkes med deres engelske navn. Besøk Wiki-siden Liste over Calc-funksjoner for en fullstendig liste over Calc-funksjoner på engelsk.

### Eksempel:

##### I Basic

        ' Slett alle tomme kolonner i området G1:L10 fra Ark1
        nyttområde = oDoc.CompactLeft("Sheet1.G1:L10")
        ' Eksemplet nedenfor er likt, men hele kolonnen er slettet fra arket
        newrange = oDoc.CompactLeft("Sheet1.G1:L10", Whole Column := Sann)
        ' Sletter alle kolonner der den første raden er merket med en "X"
        newrange = oDoc.CompactLeft("Ark.G1:L10", FilterFormula := "=(G1=""X"")")
        ' Sletter alle kolonner der summen av verdier i kolonnen er oddetall
        newrange = oDoc.CompactLeft("Ark.G1:L10", FilterFormula := "=(MOD(SUM(G1:G10);2)=1)")

##### I Python

        newrange = myDoc.CompactLeft("Ark.G1:L10")
        newrange = myDoc.CompactLeft("Ark.G1:L10", wholecolumn = Sann)
        newrange = myDoc.CompactLeft("Ark.G1:L10", filterformula = '=(G1="X")')
        newrange = myDoc.CompactLeft("Ark.G1:L10", filterformula = '=(MOD(SUM(G1:G10);2)=1)')

## CompactUp

Sletter radene i et spesifisert område som samsvarer med et filter uttrykt som en Calc-formel. Filteret brukes på hver rad for å bestemme om den skal slettes eller ikke.

De slettede radene kan begrenses til bredden av det angitte området eller spenne til bredden på hele arket, og dermed slette hele rader.

Denne metoden returnerer en streng med områdeadressen til det komprimerte området. Hvis alle rader slettes, returneres en tom streng.

Hvis et celleområde er valgt, vil ikke oppkalling av denne metoden påvirke utvalget.

### Syntaks:

svc.CompactUp(range: str, wholerow: bool = False, opt filterformula: str): str

### Parametre:

område: Området som rader vil bli slettet fra, som en streng.

hele rad: Hvis dette alternativet er satt til True vil hele raden bli slettet fra arket. Standardverdien er Usann, som betyr at den slettede raden vil være begrenset til bredden på det spesifiserte området.

filterformula: Filteret som skal brukes på hver rad for å bestemme om den skal slettes eller ikke. Filteret uttrykkes som en Calc-formel som skal brukes på den første raden. Når formelen returnerer Sann for en rad, vil den raden bli slettet. Standardfilteret sletter alle tomme rader.

Anta for eksempel at området A1:J200 er valgt (bredde = 10), så standardformelen er =(COUNTBLANK(A1:J1)=10). Dette betyr at hvis alle 10 cellene er tomme i den første raden (rad 1), så slettes raden. Merk at formelen kun er uttrykt med hensyn til den første raden. Internt vil CompactUp-metoden generalisere denne formelen for alle de gjenværende radene.

Calc-funksjonene som brukes i formelen spesifisert i filterformula-argumentet må uttrykkes ved å bruke deres engelske navn. Besøk Wiki-siden Liste over Calc-funksjoner for en fullstendig liste over Calc-funksjoner på engelsk.

### Eksempel:

##### I Basic

        ' Slett alle tomme rader i området G1:L10 fra Ark1
        newrange = oDoc.CompactUp("Ark1.G1:L10")
        ' Eksemplet nedenfor er likt, men hele raden er slettet fra arket
        newrange = oDoc.CompactUp("Ark1.G1:L10", WholeRow := Sann)
        ' Sletter alle rader der den første kolonnen er merket med en "X"
        newrange = oDoc.CompactUp("Ark1.G1:L10", FilterFormula := "=(G1=""X"")")
        ' Sletter alle rader der summen av verdier i raden er oddetall
        newrange = oDoc.CompactUp("Ark1.G1:L10", FilterFormula := "=(MOD(SUM(G1:L1);2)=1)")

##### I Python

        newrange = myDoc.CompactUp("Ark1.G1:L10")
        newrange = myDoc.CompactUp("Ark1.G1:L10", wholerow = Sann)
        newrange = myDoc.CompactUp("Ark1.G1:L10", filterformula = '=(G1="X")')
        newrange = myDoc.CompactUp("Ark1.G1:L10", filterformula = '=(MOD(SUM(G1:L1);2)=1)')

## CopySheet

Kopierer et spesifisert ark før et eksisterende ark eller på slutten av listen over ark. Arket som skal kopieres kan være inne i ethvert åpent Calc-dokument. Returnerer Sann hvis vellykket.

### Syntaks:

svc.CopySheet(sheetname: any, newname: str, [beforesheet: any]): bool

### Parametre:

arknavn: Navnet på arket som skal kopieres som en streng eller dets referanse som et objekt.

nyttnavn: Navnet på arket som skal settes inn. Navnet må ikke være i bruk i dokumentet.

foranark: Navnet (strengen) eller indeksen (numerisk, fra 1) på arket som det kopierte arket skal settes inn før. Dette argumentet er valgfritt, og standard oppførsel er å legge til det kopierte arket på den siste posisjonen.

### Eksempel:

##### I Basic

Følgende eksempel lager en kopi av arket "SheetX" og plasserer det som det siste arket i gjeldende dokument. Navnet på det kopierte arket er "SheetY".

        Dim oDoc as Object
        Henter dokumentobjektet til det aktive vinduet
        Set oDoc = CreateScriptService("Calc")
        oDoc.CopySheet("SheetX", "SheetY")

Eksemplet nedenfor kopierer "SheetX" fra "FileA.ods" og limer det inn på den siste posisjonen til "FileB.ods" med navnet "SheetY":

          Dim oDocA As Object : Set oDocA = ui.OpenDocument("C:\Documents\FileA.ods", Hidden := True, ReadOnly := True)
          Dim oDocB As Object : Set oDocB = ui.OpenDocument("C:\Documents\FileB.ods")
          oDocB.CopySheet(oDocA.Sheet("SheetX"), "SheetY")

##### I Python

        myDoc.CopySheet("SheetX", "SheetY")

        docA = ui.OpenDocument(r"C:\Documents\FileA.ods", hidden = True, readonly = True)
        docB = ui.OpenDocument(r"C:\Documents\FileB.ods")
        docB.CopySheet(docA.Sheet("SheetX"), "SheetY")

For å kopiere ark mellom åpne dokumenter, bruk CopySheet. For å kopiere ark fra dokumenter som er lukket, bruk CopySheetFromFile.

## CopySheetFromFile

Kopierer et spesifisert ark fra et lukket Calc-dokument og limer det inn før et eksisterende ark eller på slutten av listen over ark i filen referert til av et Dokument-objekt.

Hvis filen ikke eksisterer, oppstår det en feil. Hvis filen ikke er en gyldig Calc-fil, settes det inn et tomt ark. Hvis kildearket ikke finnes i inndatafilen, settes det inn en feilmelding øverst på det nylig limte arket.

### Syntaks:

svc.CopySheetFromFile(filename: str, sheetname: str, newname: str, [beforesheet: any]): bool

### Parametre:

filnavn: Identifiserer filen som skal åpnes. Den må følge SF_FileSystem.FileNaming-notasjonen. Filen må ikke være beskyttet med passord.

arknavn: Navnet på arket som skal kopieres som en streng.

newname: Navnet på det kopierte arket som skal settes inn i dokumentet. Navnet må ikke være i bruk i dokumentet.

førark: Navnet (strengen) eller indeksen (numerisk, fra 1) på arket som det kopierte arket skal settes inn før. Dette argumentet er valgfritt, og standard oppførsel er å legge til det kopierte arket på den siste posisjonen.

### Eksempel:

Følgende eksempel kopierer "SheetX" fra "myFile.ods" og limer det inn i dokumentet referert til av "oDoc" som "SheetY" ved den første posisjonen.

##### I Basic

        oDoc.CopySheetFromFile("C:\Documents\myFile.ods", "SheetX", "SheetY", 1)

##### I Python

        myDoc.CopySheetFromFile(r"C:\Documents\myFile.ods", "SheetX", "SheetY", 1)

## CopyToCell

Kopierer et spesifisert kildeområde (verdier, formler og formater) til et målområde eller celle. Metoden reproduserer virkemåten til en Kopier/Lim inn-operasjon fra et område til en enkelt celle.

Den returnerer en streng som representerer det modifiserte celleområdet. Størrelsen på det modifiserte området bestemmes fullt ut av størrelsen på kildeområdet.

Kildeområdet kan tilhøre et annet åpent dokument.

### Syntaks:

svc.CopyToCell(sourcerange: any, destinationcell: str): str

### Parametre:

kildeområde: Kildeområdet som en streng når det tilhører samme dokument eller som en referanse når det tilhører et annet åpent Calc-dokument.

destinationcell: Destinasjonscellen der det kopierte celleområdet skal limes inn, som en streng. Hvis et område er gitt, vurderes kun dens øverste venstre celle.

### Eksempel:

##### I Basic

Neste er et eksempel der kilden og destinasjonen er i samme fil:

          oDoc.CopyToCell("SheetX.A1:F10", "SheetY.C5")

Eksemplet nedenfor illustrerer hvordan du kopierer et område fra et annet åpent Calc-dokument:

        Dim ui as Variant : ui = CreateScriptService("UI")
        Dim oDocSource As Object, oDocDestination As Object
        'Åpne kildedokumentet i bakgrunnen (skjult)
        Set oDocSource = ui.OpenDocument("C:\SourceFile.ods", Hidden := True, ReadOnly := True)
        Set oDocDestination = CreateScriptService("Calc")
        oDocDestination.CopyToCell(oDocSource.Range("Sheet1.C2:C4"), "SheetT.A5")
        'Ikke glem å lukke kildedokumentet fordi det ble åpnet som skjult
        oDocSource.CloseDocument()

##### I Python

        docSource = ui.OpenDocument(r"C:\Documents\SourceFile.ods", hidden = True, readonly = True)
        docDestination = CreateScriptService("Calc")
        docDestination.CopyToCell(docSource.Range("Sheet1.C2:C4"), "SheetT.A5")
        docSource.CloseDocument()

For å simulere en Kopier/ Lim inn fra et område til en enkelt celle, bruk KopierTilCelle. For å simulere en Kopier/ Lim inn fra et område til et større område (med de samme cellene som blir replikert flere ganger), bruk KopierTilOmråde.

## CopyToRange

Kopierer nedover og/eller mot høyre et spesifisert kildeområde (verdier, formler og formater) til et målområde. Metoden imiterer oppførselen til en Kopier/Lim inn-operasjon fra et kildeområde til et større målområde.

- Hvis høyden (eller bredden) på destinasjonsområdet er > 1 rad (eller kolonne), må høyden (eller bredden) på kilden være <= høyden (eller bredden) på destinasjonen. Ellers skjer det ingenting.

- Hvis høyden (eller bredden) til destinasjonen er = 1, utvides destinasjonen nedover (eller mot høyre) opp til høyden (eller bredden) av kildeområdet.

Metoden returnerer en streng som representerer det modifiserte celleområdet.

Kildeområdet kan tilhøre et annet åpent dokument.

### Syntaks:

svc.CopyToRange(sourcerange: any, destinationrange: str): str

### Parametre:

kildeområde: Kildeområdet som en streng når det tilhører samme dokument eller som en referanse når det tilhører et annet åpent Calc-dokument.

destinationrange: Destinasjonen for det kopierte celleområdet, som en streng.

### Eksempel:

##### I Basic

Kopier innenfor samme dokument:

        oDoc.CopyToRange("SheetX.A1:F10", "SheetY.C5:J5")
        ' Returnerer en områdestreng: "$SheetY.$C$5:$J$14"

Kopier fra en fil til en annen:

        Dim oDocA As Object : Set oDocA = ui.OpenDocument("C:\Documents\FileA.ods", Hidden := True, ReadOnly := True)
        Dim oDocB As Object : Set oDocB = ui.OpenDocument("C:\Documents\FileB.ods")
        oDocB.CopyToRange(oDocA.Range("SheetX.A1:F10"), "SheetY.C5:J5")

##### I Python

        doc.CopyToRange("SheetX.A1:F10", "SheetY.C5:J5")

        docA = ui.OpenDocument(r"C:\Documents\FileA.ods", hidden = True, readonly = True)
        docB = ui.OpenDocument(r"C:\Documents\FileB.ods")
        docB.CopyToRange(docA.Range("SheetX.A1:F10"), "SheetY.C5:J5")

## CreateChart

Oppretter et nytt diagramobjekt som viser dataene i det angitte området. Det returnerte kartobjektet kan manipuleres ytterligere ved å bruke Diagram-tjenesten.

### Syntaks:

svc.CreateChart(chartname: str, sheetname: str, range: str, columnheader: bool = False, rowheader: bool = False): obj

### Parametre:

diagramnavn: Det brukerdefinerte navnet på diagrammet som skal opprettes. Navnet må være unikt i samme ark.

arknavn: Navnet på arket der diagrammet skal plasseres.

område: Området som skal brukes som datakilde for diagrammet. Området kan referere til et hvilket som helst ark i Calc-dokumentet.

kolonneoverskrift: Når SANN er satt til, brukes den øverste raden i området som etiketter for kategoriaksen eller forklaringen (standard = USANN).

radoverskrift: Når Sann er satt til, brukes kolonnen lengst til venstre i området som etiketter for kategoriaksen eller forklaringen. (Standard = Usann).

### Eksempel:

Eksemplene nedenfor i Basic og Python lager et diagram ved å bruke dataene i området "A1:B5" til "Ark1" og plasser diagrammet i "Ark2".

##### I Basic

        Set oChart = oDoc.CreateChart("MyChart", "Sheet2", "Sheet1.A1:B5", RowHeader := True)
        oChart.ChartType = "Donut"

##### I Python

        chart = doc.CreateChart("MyChart", "Sheet2", "Sheet1.A1:B5", rowheader=True)
        chart.ChartType = "Donut"

Se hjelpesiden om ScriptForges Diagramjeneste for å lære mer hvordan du kan ytterligere manipulere diagramobjekter. Det er mulig å endre egenskaper som diagramtype, diagram- og aksetitler og diagramposisjon.

## CreatePivotTable

Oppretter en ny pivottabell med egenskapene definert av argumentene som sendes til metoden.

Et navn må angis for pivottabellen. Hvis en pivottabell med samme navn allerede finnes i målarket, vil den bli erstattet uten forvarsel.

Denne metoden returnerer en streng som inneholder området der den nye pivottabellen ble plassert.

### Syntaks:

svc.CreatePivotTable(pivottablename: str, sourcerange: str, targetcell: str, datafields: str[0..*], rowfields: str[0..*], columnfields: str[0..*], filterbutton: bool = true, rowtotals: bool = true, columntotals: bool = true): str

### Parametre:

pivottablename: Det brukerdefinerte navnet på den nye pivottabellen.

sourcerange: Området som inneholder rådataene, som en streng. Det antas at den første raden inneholder feltnavnene som brukes av pivottabellen.

målcelle: Cellen øverst til venstre der den nye pivottabellen skal plasseres. Hvis et område er spesifisert, blir bare den øverste venstre cellen vurdert.

datafelt: Det kan enten være en enkelt streng eller en matrise som inneholder strenger som definerer feltnavn og funksjoner som skal brukes. Når en matrise spesifiseres, må den følge syntaksen Matrise("FieldName[;Function]", ...).

De tillatte funksjonene er: Sum, Count, Gjennomsnitt, Maks, Min, Produkt, CountNums, StDev, StDevP, Var, VarP og Median. Funksjonsnavn må oppgis på engelsk. Når alle verdier er numeriske, er Sum standardfunksjonen, ellers er standardfunksjonen Count.

rowfields En enkelt streng eller en matrise med feltnavnene som skal brukes som rader i pivottabellen.

rowfields En enkel streng eller en matrise med feltnavn som skal brukes som rader i pivottabellen.

filterknapp: Bestemmer om en filterknapp skal vises over pivottabellen (Standard = Sann).

radtotaler: Angir om en egen kolonne for radtotaler skal legges til i pivottabellen (Standard = SANN).

kolonnetotaler: Angir om en egen rad for kolonnetotaler skal legges til i pivottabellen (Standard = SANN)

### Eksempel:

##### I Basic

        Dim vData As Variant, oDoc As Object, ui As Object, sTable As String, sPivot As String
        Set ui = CreateScriptService("UI")
        Set oDoc = ui.CreateDocument("Calc")
        vData = Matrise(Array("Vare", "Tilstand", "Lag", "2002", "2003", "2004"), _
            Matrise("Bøker", "Michigan", "Jean", 14788, 30222, 23490), _
            Matrise("Candy", "Michigan", "Jean", 26388, 15641, 32849), _
            Matrise("Pens", "Michigan", "Jean", 16569, 32675, 25396), _
            Matrise("Bøker", "Michigan", "Volker", 21961, 21242, 29009), _
            Matrise("Candy", "Michigan", "Volker", 26142, 22407, 32841))
        sTable = oDoc.SetArray("A1", vData)
        sPivot = oDoc.CreatePivotTable("PT1", sTable, "H1", _
            Matrise("2002", "2003;count", "2004;average"), _ ' Three data fields
            "Gjenstand", _ ' A single row field
            Matrise("State", "Team"), False) ' Two column fields

##### I Python

        ui = CreateScriptService("UI")
        doc = ui.CreateDocument("Calc")
        vData = [["Gjenstand", "Stat", "Team", "2002", "2003", "2004"],
                 ["Bøker", "Michigan", "Jean", 14788, 30222, 23490],
                 ["Candy" , "Michigan", "Jean", 26388, 15641, 32849],
                 ["Penner", "Michigan", "Jean", 16569, 32675, 25396)],
                 ["Bøker", "Michigan", "Volker", 21961, 21242, 29009],
                 ["Candy" , "Michigan", "Volker", 26142, 22407, 32841]]
        sTable = doc.SetArray("A1", vData)
        sPivot = doc.CreatePivotTable("PT1", sTable, "H1",
                                      ["2002", "2003;count", "2004;gjennomsnitt"],
                                      "Gjenstand",
                                      ["Stat", "Team"], Usann)

For å lære mer om pivottabeller i LibreOffice Calc, les pivottabell hjelpesiden.

## DAvg, DCount, DMax, DMin and DSum

Bruk funksjonene Average, Count, Max, Min og Sum, henholdsvis på alle cellene som inneholder numeriske verdier i et gitt område, unntatt verdier fra filtrerte og skjulte rader og skjulte kolonner, det samme som for statuslinjefunksjonene.

### Syntaks:

svc.DAvg(range: str): float

svc.DCount(range: str): float

svc.DMax(range: str): float

svc.DMin(range: str): float

svc.DSum(range: str): float

### Parametre:

område: Området som funksjonen skal brukes på, som en streng.

### Eksempel:

Eksemplet nedenfor bruker Sum-funksjonen på området "A1:A1000" for det valgte arket:

##### I Basic

          result = oDoc.DSum("~.A1:A1000")

##### I Python

        result = myDoc.DSum("~.A1:A1000")

Celler i det gitte området som inneholder tekst vil bli ignorert av alle disse funksjonene. For eksempel vil DCount-metoden ikke telle celler med tekst, kun numeriske celler.

## DecorateFont

Angi enkle og brukervennlige egenskaper for skrifttypen som skal brukes i et celleområde.

De berørte cellene kan bestemmes med en filterformel og dens omfang.

For å bruke mer komplekse skriftdekorasjoner, bruk de vanlige og mange UNO-egenskapene som er tilgjengelige i XCell- eller XCellRange-grensesnittene.

### Syntaks:

svc.DecorateFont(targetrange: str, opt fontname: str, opt fontsize: int, opt decoration: str, opt filterformula: str, opt filterscope: str)

### Parametre:

targetrange: Cellen eller området som en streng der cellefonter skal dekoreres på nytt.

fontnavn: Navnet på fonten som skal brukes. Navnet er ikke avkrysset. Standard = ingen endring.

fontstørrelse: Størrelsen på skriften i piksler. Standard = ingen endring.

dekorasjon: En streng som kombinerer ett eller flere av de neste store bokstavene (andre tegn ignoreres). Standard = ingen endring:

- F, U, K, S: Fet skrift, understreking, kursiv, gjennomstreking.

filterformula: En Calc-formel som skal brukes på det gitte området for å bestemme hvilke celler som vil bli påvirket. Den angitte formelen må returnere Sann eller Falsk. Hvis dette argumentet ikke er spesifisert, påvirkes alle celler i området.

filterscope: Bestemmer hvordan filterformula utvides til det gitte området. Dette argumentet er obligatorisk hvis en filterformula er spesifisert. Følgende verdier godtas:

- "CELL": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver celle i området.

- "RAD": Formelen som er spesifisert i filterformel-argumentet utvides én gang for hver celle i området.

- "KOLONNE": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver kolonne i området.

### Eksempel:

##### I Basic

            Endre skriftstørrelsen og bruk fet skrift og understrekingsegenskaper på de numeriske cellene.
            doc.DecorateFont("SheetX.A1:J30", fontstørrelse := 15, dekorasjon := "Fet,Understreket", filterformel := "=IsNumeric(A1)", filteromfang := "CELL"E)

##### I Python

            # Endre skriftstørrelsen og bruk fet skrift og understreking på de numeriske cellene.
            doc.DecorateFont('SheetX.A1:J30', fontstørrelse = 15, dekorasjon = 'Fet,Understreket', filterformel = '=IsNumeric(A1)', filteromfang = 'CELL'E)

## DefineName

Definer et nytt navn i regnearket, på globalt nivå eller arknivå. Hvis navnet allerede finnes, overskrives det uten forvarsel. Etter opprettelsen kan det nye navnet brukes i formler. Returnerer Sann når det er vellykket.

Bruk DefinedNames-egenskapen til å undersøke eksisterende navngitte områder.

### Syntaks:

svc.DefineName(definedname: str, value: any, opt sheetname: str): boolean

### Parametre:

definedname: Navnet som skal opprettes eller endres uten forvarsel. Merk at homonymer kan finnes, men ikke i samme ark og ikke på globalt nivå.

verdi: Det nye navnet som:

- en områdereferanse som en streng, ofte en enkelt celle

- en skalarverdi som et tall eller en streng

- en formel som starter med tegnet "="

Når Verdi er et område, settes den øverste venstre cellen som referansecelle.

arknavn: Det definerte navneområdet er det angitte arket. Snarveien "~" godtas.

### Eksempel:

##### I Basic

            doc.DefineName("NyttNavn", Ark := "Ark3", Verdi := "H2")

##### I Python

            doc.DefineName('NyttNavn', ark = 'Ark3', verdi = 'H2')

## ExportRangeToFile

Eksporterer det angitte området som et bilde eller PDF-fil.

Denne metoden returnerer Sann hvis målfilen ble lagret.

Skjulte rader eller kolonner i det angitte området eksporteres ikke til målfilen.

### Syntaks:

svc.ExportRangeToFile(range: str, filename: str, imagetype: str = "pdf", overwrite: bool = False): bool

### Parametre:

område: Et arknavn eller et celleområde som skal eksporteres, som en streng.

filnavn: Navnet på filen som skal lagres. Den må følge SF_FileSystem.FileNaming-notasjonen.

imagetype: Identifiserer målfiltypen. Mulige verdier er "jpeg", "pdf" (standard) og "png".

overskriv: Når satt til True, kan målfilen bli overskrevet (Standard = Usann).

### Eksempel:

##### I Basic

        ' Eksporterer hele arket som en PDF-fil
        oDoc.ExportRangeToFile("SheetX", "C:\Temp\image.pdf")
        ' Eksporterer området som en PNG-fil og overskriver målfilen hvis den eksisterer
        oDoc.ExportRangeToFile("SheetX.A1:D10", "C:\Temp\image.png", "png", Overwrite := True)

##### I Python

        doc.ExportRangeToFile("SheetX", r"C:\Temp\image.pdf")
        doc.ExportRangeToFile("SheetX.A1:D10", r"C:\Temp\image.png", "png", overwrite = True)

## FormatRange

Bruk et gitt tallformat på en celle eller et celleområde.

De berørte cellene kan bestemmes med en filterformel og dens omfang.

### Syntaks:

svc.FormatRange(targetrange: str, numberformat: str, opt locale: str, opt filterformula: str, opt filterscope: str)

### Parametre:

targetrange: Cellen eller området som en streng som skal motta formatet.

numberformat: Formatet som skal brukes, som en streng.

locale: En la-CO (språk-LAND)-kombinasjon for å angi hvilken språkinnstilling som brukes. Standardspråkinnstillingen er resultatet av platform.FormatLocale-egenskapen.

filterformula: En Calc-formel som skal brukes på det gitte området for å bestemme hvilke celler som vil bli påvirket. Den angitte formelen må returnere Sann eller Falsk. Hvis dette argumentet ikke er spesifisert, påvirkes alle celler i området.

filterscope: Bestemmer hvordan filterformula utvides til det gitte området. Dette argumentet er obligatorisk hvis en filterformula er spesifisert. Følgende verdier godtas:

- "CELL": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver celle i området.

- "RAD": Formelen som er spesifisert i filterformel-argumentet utvides én gang for hver celle i området.

- "KOLONNE": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver kolonne i området.

### Eksempel:

##### I Basic

            'Formater bare cellene som inneholder en numerisk verdi.
            doc.FormatRange("SheetX.A1:J30", "0.00E+00", filterformel := "=IsNumeric(A1)", filterscope := "CELLE")

##### I Python

            # Formater bare cellene som inneholder en numerisk verdi.
            doc.FormatRange('SheetX.A1:J30', '0.00E+00', filterformel = '=IsNumeric(A1)', filterscope = 'CELL'E)

## Forms

Avhengig av parametrene som er gitt, vil denne metoden returnere:

- En nullbasert matrise (eller en tuppel i Python) med navnene på alle skjemaene i et gitt ark (hvis form-argumentet er fraværende)

- En SFDocuments.Form tjenesteforekomst som representerer skjemaet angitt som argument.

### Syntaks:

svc.Forms(sheetname: str): str[0..*]

svc.Forms(sheetname: str, form: str = ''): svc

svc.Forms(sheetname: str, form: int): svc

### Parametre:

arknavn: Navnet på arket, som en streng, som skjemaet vil bli hentet fra.

skjema: Navnet eller indeksen som tilsvarer et skjema som er lagret i det angitte arket. Hvis dette argumentet er fraværende, vil metoden returnere en liste med navnene på alle tilgjengelige skjemaer i arket.

### Eksempel:

I de følgende eksemplene får den første linjen navnene på alle skjemaer som er lagret i "Ark1", og den andre linjen henter Skjema-objektet til skjemaet kalt "Skjema_A" som er lagret i "Ark1".

##### I Basic

        Set FormNames = oDoc.Forms("Sheet1")
        Set FormA = oDoc.Forms("Sheet1", "Form_A")

##### I Python

        form_names = doc.Forms("Sheet1")
        form_A = doc.Forms("Sheet1", "Form_A")

## GetColumnName

Konverterer et kolonnenummer mellom 1 og 1024 til dens tilsvarende bokstav (kolonne 'A', 'B', ..., 'AMJ'). Hvis det gitte kolonnenummeret er utenfor det tillatte området, returneres en streng med null lengde.

### Syntaks:

svc.GetColumnName(columnnumber: int): str

### Parametre:

kolonnenummer: Kolonnenummeret som en heltallsverdi i intervallet 1 ... 16384.

### Eksempel:

##### I Basic

Viser en meldingsboks med navnet på den tredje kolonnen, som som standard er "C".

        MsgBox oDoc.GetColumnName(3)

##### I Python

        bas = CreateScriptService("Basic")
        bas.MsgBox(myDoc.GetColumnName(3))

Maksimalt antall kolonner tillatt på et Calc-ark er 16384.

## GetFormula

Få formelen(e) lagret i det gitte celleområdet som en enkelt streng, en 1D eller en 2D rekke strenger.

Navnene på Calc-funksjoner som brukes i de returnerte formlene er uttrykt på engelsk. Besøk Wiki-siden Liste over Calc-funksjoner for en fullstendig liste over Calc-funksjoner på engelsk.

### Syntaks:

svc.GetFormula(range: str): any

### Parametre:

område: Området hvor formlene skal hentes fra, som en streng.

### Eksempel:

##### I Basic

Følgende eksempel returnerer en 3 x 2 matrise med formlene i området "A1:B3" (3 rader x 2 kolonner):

        arrFormula = oDoc.GetFormula("~.A1:B3")

##### I Python

        arrFormula = myDoc.GetFormula("~.A1:B3")

## GetValue

Få verdien(e) lagret i det gitte celleområdet som en enkelt verdi, en 1D-matrise eller en 2D-matrise. Alle verdier er enten doble eller strenger.

### Syntaks:

svc.GetValue(range: str): any

### Parametre:

område: Området hvor du skal hente verdiene fra, som en streng.

### Eksempel:

##### I Basic

          arrValues = oDoc.GetValue("~.B1:C100")

##### I Python

        arrValues = myDoc.GetValue("~.B1:C100")

Hvis en celle inneholder en dato, vil tallet som tilsvarer den datoen bli returnert. For å konvertere numeriske verdier til datoer i grunnleggende skript, bruk den grunnleggende CDate innebygde funksjon. I Python-skript bruker du CDate-funksjonen fra Basic-funksjonen > tjeneste.

## ImportFromCSVFile

Importerer innholdet i en CSV-formatert tekstfil og plasserer den på en gitt destinasjonscelle.

Destinasjonsområdet tømmes for alt innhold og formater før innholdet i CSV-filen settes inn. Størrelsen på det modifiserte området bestemmes fullt ut av innholdet i inndatafilen.

Metoden returnerer en streng som representerer det modifiserte celleområdet.

### Syntaks:

svc.ImportFromCSVFile(filename: str, destinationcell: str, [filteroptions: str]): str

### Parametre:

filnavn: Identifiserer filen som skal åpnes. Den må følge SF_FileSystem.FileNaming-notasjonen.

destinationcell: Destinasjonscellen for å sette inn importerte data, som en streng. Hvis det i stedet angis et område, vurderes bare dens øverste venstre celle.

filteralternativer: Argumentene for CSV-inndatafilteret. Standardfilteret gjør følgende forutsetninger:

- Inndatafilens koding er UTF8.

- Feltseparatoren er et komma, et semikolon eller et tabulatortegn.

- Strengavgrensningstegnet er det doble anførselstegn (").

- Alle linjer er inkludert.

- Strenger i anførselstegn er formatert som tekst.

- Spesielle tall blir oppdaget.

- Alle kolonner antas å være tekster, bortsett fra hvis de gjenkjennes som gyldige tall.

- Språket er engelsk/amerikansk, noe som betyr at desimalskilletegn er "." og tusenskilletegn er ",".

### Eksempel:

##### I Basic

        oDoc.ImportFromCSVFile("C:\Temp\myCSVFile.csv", "SheetY.C5")

##### I Python

        myDoc.ImportFromCSVFile(r"C:\Temp\myCSVFile.csv", "SheetY.C5")

For å lære mer om CSV-filteralternativene, se hjelpesiden for CSV-filteralternativer.

## ImportFromDatabase

Importerer innholdet i en databasetabell, spørring eller resultatsett, dvs. resultatet av en SELECT SQL-kommando, setter den inn i en destinasjonscelle.

Destinasjonsområdet tømmes for alt innhold og formater før det importerte innholdet settes inn. Størrelsen på det modifiserte området bestemmes fullt ut av innholdet i tabellen eller spørringen.

Metoden returnerer Sann når importen var vellykket.

### Syntaks:

svc.ImportFromDatabase(filename: str = "", registrationname: str = "", destinationcell: str = "", sqlcommand: str = "", directsql: bool): bool

### Parametre:

filnavn: Identifiserer filen som skal åpnes. Den må følge SF_FileSystem.FileNaming-notasjonen.

registreringsnavn: Navnet som skal brukes for å finne databasen i databaseregisteret. Dette argumentet ignoreres hvis et filnavn er oppgitt.

destinationcell: Destinasjonen for de importerte dataene, som en streng. Hvis et område er gitt, vurderes kun dens øverste venstre celle.

sqlcommand: Et tabell- eller spørringsnavn (uten anførselstegn eller hakeparenteser) eller en SELECT SQL-setning der tabell- og feltnavn kan være omgitt av hakeparenteser eller anførselstegn for å forbedre lesbarheten.

directsql: Når True, sendes SQL-kommandoen til databasemotoren uten forhåndsanalyse. Standard er Usann. Argumentet ignoreres for tabeller. For spørringer er det valgte alternativet det som ble angitt da spørringen ble definert.

### Eksempel:

##### I Basic

        oDoc.ImportFromDatabase("C:\Temp\myDbFile.odb", , "SheetY.C5", "SELECT * FROM [Employees] ORDER BY [LastName]")

##### I Python

        myDoc.ImportFromDatabase(r"C:\Temp\myDbFile.odb", , "SheetY.C5", "SELECT * FROM [Employees] ORDER BY [LastName]")

### ImportStylesFromFile

Denne metoden laster alle stilene som tilhører en eller flere stilfamilier fra en lukket fil til det faktiske dokumentet. Selve dokumentet må være et Calc eller et Writer dokument.

Importeres alltid sammen:

- Avsnittsstiler og Tegnstiler

- Avsnittsstiler og Tegnstiler

Returnerer Sann hvis stiler ble importert.

### Syntaks:

svc.ImportStylesFromFile(filename: str, families: str[1..*], overwrite = False): bool

### Parametre:

filnavn: Filen som stilene skal lastes fra i Filsystem-notasjonen. Filen antas å være av samme dokumenttype som selve dokumentet.

familier: En av stilfamiliene som finnes i selve dokumentet, som en streng som skiller mellom store og små bokstaver, eller som en rekke slike strenger. La dette argumentet stå tomt for å importere alle familier.

overskriv: Når Sann, kan de faktiske stilene bli overskrevet. Standard er Usann.

### Eksempel:

##### I Basic

        oDoc.ImportStylesFromFile("C:\User\Documents\myFile.ods", "ParagraphStyles", True)

##### I Python

        doc.ImportStylesFromFile('C:\User\Documents\myFile.ods', ("ParagraphStyles",), False)

## InsertSheet

Setter inn et nytt tomt ark før et eksisterende ark eller på slutten av listen over ark.

### Syntaks:

svc.InsertSheet(sheetname: str, [beforesheet: any]): bool

### Parametre:

arknavn: Navnet på det nye arket.

beforesheet: Navnet (strengen) eller indeksen (numerisk, fra 1) til arket som det nye arket skal settes inn før. Dette argumentet er valgfritt, og standard oppførsel er å sette inn arket på den siste posisjonen.

### Eksempel:

Følgende eksempel setter inn et nytt tomt ark kalt "ArkX" og plasserer det før "ArkY":

##### I Basic

        oDoc.InsertSheet("SheetX", "SheetY")

##### I Python

        myDoc.InsertSheet("SheetX", "SheetY")

## Intersect

Returnerer strengen som representerer skjæringspunktet mellom de to inndataområdene, eller en streng med lengde null når skjæringspunktet er tomt.

### Syntaks:

svc.Intersect(range1:str, range2: str): str

### Parametre:

område1: Adressestrengen for område 1.

område2: Adressestrengen for område 2.

### Eksempel:

Følgende eksempel skjærer to områder og returnerer det felles området mellom dem begge:

##### I Basic

        Dim commonrange As String
        commonrange = oDoc.Intersect("A1:D8", "C3:F4")
        Skriv ut fellesområde ' viser "$Sheet1.$C$3:$D$4"

##### I Python

        common_range = myDoc.Intersect("A1:D8", "C3:F4")
        print(common_range) # sender ut '$Sheet1.$C$3:$D$4' til Python-skallet

## MoveRange

Flytter et spesifisert kildeområde til et målområde med celler. Metoden returnerer en streng som representerer det modifiserte celleområdet. Dimensjonen til det modifiserte området er fullt ut bestemt av størrelsen på kildeområdet.

### Syntaks:

svc.MoveRange(source: str, destination: str): str

### Parametre:

kilde: Kildeområdet for celler, som en streng.

destinasjon: Destinasjonscellen, som en streng. Hvis et område er gitt, anses dens øverste venstre celle som destinasjonen.

### Eksempel:

##### I Basic

        oDoc.MoveRange("SheetX.A1:F10", "SheetY.C5")

##### I Python

        myDoc.MoveRange("SheetX.A1:F10", "SheetY.C5")

## MoveSheet

Flytter et eksisterende ark og plasserer det foran et spesifisert ark eller på slutten av listen over ark.

### Syntaks:

svc.MoveSheet(sheetname: str, [beforesheet: any]): bool

### Parametre:

arknavn: Navnet på arket som skal flyttes. Arket må eksistere eller et unntak oppstår.

beforesheet: Navnet (strengen) eller indeksen (numerisk, fra 1) til arket som det originale arket skal plasseres foran. Dette argumentet er valgfritt, og standard oppførsel er å flytte arket til siste posisjon.

### Eksempel:

Eksemplet nedenfor flytter det eksisterende arket "SheetS" og plasserer det før "ShettY":

##### I Basic

        oDoc.MoveSheet("SheetX", "SheetY")

##### I Python

        myDoc.MoveSheet("SheetX", "SheetY")

## Offset

Returnerer et nytt område (som en streng) forskjøvet med et visst antall rader og kolonner fra et gitt område.

Denne metoden har samme oppførsel som den homonyme Calcs Offset-funksjon.

### Syntaks:

svc.Offset(reference: str, rows: int = 0, columns: int = 0, [height: int], [width: int]): str

### Parametre:

referanse: Området, som en streng, som metoden vil bruke som referanse for å utføre offset-operasjonen.

rader: Antall rader som startområdet forskyves med oppover (negativ verdi) eller nedover (positiv verdi). Bruk 0 (standard) for å bli i samme rad.

kolonner: Antall kolonner som startområdet forskyves med til venstre (negativ verdi) eller til høyre (positiv verdi). Bruk 0 (standard) for å bli i samme kolonne.

høyde: Den vertikale høyden for et område som starter ved den nye rekkeviddeposisjonen. Utelat dette argumentet når ingen vertikal endring av størrelse er nødvendig.

bredde: Den horisontale bredden for et område som starter ved den nye rekkeviddeposisjonen. Utelat dette argumentet når ingen horisontal størrelseendring er nødvendig.

Argumenter rader og kolonner må ikke føre til null eller negativ startrad eller kolonne.

Argumenter høyde og bredde må ikke føre til null eller negativt antall rader eller kolonner.

### Eksempel:

##### I Basic

        oDoc.Offset("A1", 2, 2)
        'SheetX.$C$3 (A1 flyttet med to rader og to kolonner nedover)
        oDoc.Offset("A1", 2, 2, 5, 6)
        'SheetX.$C$3:$H$7 (A1 forskjøvet med to rader og kolonner med en bredde på 5 rader og 6 kolonner)

##### I Python

        myDoc.Offset("A1", 2, 2)
        myDoc.Offset("A1", 2, 2, 5, 6)

## OpenRangeSelector

Åpner en ikke-modal dialogboks som kan brukes til å velge et område i dokumentet og returnerer en streng som inneholder det valgte området.

Denne metoden åpner den samme dialogboksen som brukes av LibreOffice når Minsk-knappen trykkes. For eksempel har Verktøy - Målsøk-dialogen en Minsk-knapp til høyre for Formelcelle-feltet.

Denne metoden endrer ikke gjeldende valg.

### Syntaks:

svc.OpenRangeSelector(opt title: str, opt selection: str, singlecell: bool = False, closeafterselect: bool = True): str

### Parametre:

tittel: Tittelen på dialogboksen, som en streng.

utvalg: Et valgfritt område som først velges når dialogboksen vises.

enkeltcelle: Når Sann (standard) er kun enkeltcellevalg tillatt. Når Usann er omrxdevalg tillatt.

stengettervalg: Når Sann (standard) lukkes dialogen umiddelbart etter at valget er gjort. Når Usann kan brukeren endre valget så mange ganger som nødvendig og deretter lukke dialogen manuelt.

### Eksempel:

##### I Basic

        Dim sRange as String
        sRange = oDoc.OpenRangeSelector(Title := "Select a range")

##### I Python

        sRange = myDoc.OpenRangeSelector(title = "Select a range")

## Printf

Returnerer inndatastrengen etter å ha erstattet dens token-tegn med verdiene deres i et gitt område.

Denne metoden endrer ikke gjeldende valg.

Denne metoden kan brukes til raskt å trekke ut bestemte deler av et områdenavn, for eksempel arknavnet eller første cellekolonne og rad, og bruke dem til å lage en ny områdeadresse.

### Syntaks:

svc.Printf(inputstr: str, range: str, tokencharacter: str = "%"): str

### Parametre:

inputstr: Strengen som inneholder tokner som vil bli erstattet av de tilsvarende verdiene i området.

range: Et RangeName som verdier vil bli trukket ut fra. Hvis det inneholder et arknavn, må arket eksistere.

tokencharacter: Tegn som brukes til å identifisere tokner. Som standard er "%" symboltegnet. Følgende tokner godtas:

- %S – Arknavnet som inneholder området, inkludert enkle anførselstegn når det er nødvendig.

- %R1 – Radnummeret til cellen øverst til venstre i området.

- %C1 – Kolonnebokstaven i cellen øverst til venstre i området.

- %R2 – Radnummeret til cellen nederst til høyre i området.

- %C2 – Kolonnebokstaven i cellen nederst til høyre i området.

### Eksempel:

##### I Basic

Eksemplet nedenfor trekker ut hvert element i RangeName definert i sRange og bruker dem til å skrive en melding.

        Dim sRange as String, sInputStr as String
        sRange = "Sheet1.A1:E10"
        sInputStr = "Sheet name: %S" & Chr(10) & _
                    "First row: %R1" & Chr(10) & _
                    "First column %C1" & Chr(10) & _
                    "Last row %R2" & Chr(10) & _
                    "Last column %C2"
        MsgBox oDoc.Printf(sInputStr, sRange)

Metoden Printf kan kombineres med SetFormula for å lage formler over flere celler. Tenk for eksempel på en tabell med numeriske verdier i området "A1:E10" som formler skal lages fra for å summere verdiene i hver rad og plasser resultatene i området "F1:F10":

        Dim sFormula as String, sRange as String
        sRange = "A1:E10"
        ' Legg merke til bruken av tegnet "$".
        sFormula = "=SUM($%C1%R1:$%C2%R1)"
        oDoc.SetFormula("F1:F10", oDoc.Printf(sFormula, sRange))

##### I Python

        sRange = "Sheet1.A1:E10"
        sInputStr = "Sheet name: %S\n" \
                    "First row: %R1\n" \
                    "First column %C1\n" \
                    "Last row %R2\n" \
                    "Last column %C2"
        bas = CreateScriptService("Basic")
        bas.MsgBox(myDoc.Printf(sInputStr, sRange))

        sRange = "A1:E10
        sFormula = "=SUM($%C1%R1:$%C2%R1)"
        myDoc.SetFormula("F1:F10", myDoc.Printf(sFormula, sRange))

## PrintOut

Denne metoden sender innholdet i det gitte arket til standardskriveren eller til skriveren som er definert av SetPrinter-metoden til Dokument-tjenesten.

Returnerer Sann hvis arket ble skrevet ut.

### Syntaks:

svc.PrintOut(opt sheetname: str, pages: str = "", copies: num = 1): bool

### Parametre:

arknavn: Arket som skal skrives ut, standard er det aktive arket.

sider: Sidene som skal skrives ut som en streng, som i brukergrensesnittet. Eksempel: "1-4;10;15-18". Standard er alle sider.

kopier: Antall kopier. Standard er 1.

### Eksempel:

##### I Basic

        If oDoc.PrintOut("SheetX", "1-4;10;15-18", Copies := 2) Then
            ' ...
        End If

##### I Python

        if doc.PrintOut('SheetX', copies=3, pages='45-88'):
            # ...

## RemoveDuplicates

Fjerner dupliserte rader fra et spesifisert område. Sammenligningen for å avgjøre om en gitt rad er en duplikat gjøres basert på et undersett av kolonner i området.

Denne metoden returnerer en streng som inneholder det resulterende området.

Fjerning av dupliserte rader gjøres fra den første raden i området som beveger seg nedover, noe som betyr at hvis to eller flere rader er duplikater, så beholdes bare den første.

### Syntaks:

svc.RemoveDuplicates(range: str, opt columns: int[0..*], header: bool = False, casesensitive: bool = False, mode: str = "COMPACT"): str

### Parametre:

område: Området som duplikater vil bli fjernet fra, som en streng.

kolonner: En matrise som inneholder kolonnenumre som indikerer hvilke kolonner som vil bli vurdert for å avgjøre om en rad er en duplikat eller ikke. Hvis dette argumentet er tomt, brukes bare den første kolonnen. Elementer i denne matrisen må være i intervallet mellom 1 og områdebredden.

overskrift: Angir om den første raden er en overskriftsrad (Standard = Usann).

forbokstavssensitiv: Angir om strengsammenligninger skiller mellom store og små bokstaver (Standard = Usann).

modus: Angir hva som skal gjøres med dupliserte rader. Hvis modus = "CLEAR" så fjernes duplikater ganske enkelt fra arket og lar cellene stå tomme. Hvis modus = "COMPACT", fjernes duplikater og tomme rader komprimeres (Standard = "COMPACT").

### Eksempel:

##### I Basic

        ' Fjerner dupliserte rader der verdiene i kolonne A er dupliserte
        ' Merk at alle valgfrie argumenter bruker standardverdien
        oDoc.RemoveDuplicates("A1:B10")
        ' Fjerner dupliserte rader med tanke på at den første raden inneholder overskrifter
        ' Kolonne A og B brukes til å bestemme om en rad er en duplikat
        ' Celler som inneholder dupliserte verdier er tomme
        oDoc.RemoveDuplicates("A1:D10", columns := Array(1, 2), header := True, mode := "CLEAR")

##### I Python

        myDoc.RemoveDuplicates("A1:B10")
        myDoc.RemoveDuplicates("A1:D10", columns = (1, 2), header = True, mode = "CLEAR")

## RemoveSheet

Fjerner et eksisterende ark fra dokumentet.

### Syntaks:

svc.RemoveSheet(sheetname: str): bool

### Parametre:

arknavn: Navnet på arket som skal fjernes.

### Eksempel:

##### I Basic

        oDoc.RemoveSheet("SheetY")

##### I Python

        myDoc.RemoveSheet("SheetY")

## RenameSheet

Gi nytt navn til det gitte arket og returnerer Sann hvis vellykket.

### Syntaks:

svc.RenameSheet(sheetname: str, newname: str): bool

### Parametre:

arknavn: Navnet på arket som skal gis nytt navn.

nyttnavn: det nye navnet på arket. Det må ikke eksistere ennå.

### Eksempel:

Dette eksemplet gir nytt navn til det aktive arket til "Ark":

##### I Basic

        oDoc.RenameSheet("~", "SheetY")

##### I Python

        mydoc.RenameSheet("~", "SheetY")

## SetArray

Lagrer den gitte verdien fra en spesifisert målcelle. Det oppdaterte området utvider seg selv fra målcellen eller fra øverste venstre hjørne av det gitte området for å imøtekomme størrelsen på verdi-argumentet. Vektorer utvides alltid vertikalt.

Metoden returnerer en streng som representerer det modifiserte området som et celleområde.

### Syntaks:

svc.SetArray(targetcell: str, value: any): str

### Parametre:

målcelle: Cellen eller et område som en streng hvorfra du skal begynne for å lagre den gitte verdien.

verdi: En skalar, en vektor eller en matrise (i Python, en- eller todimensjonale lister og tupler) med de nye verdiene som skal lagres fra målcellen eller fra øverste venstre hjørne av område hvis målcelle er et område. De nye verdiene må være strenger, numeriske verdier eller datoer. Andre typer vil føre til at de tilsvarende cellene tømmes.

### Eksempel:

##### I Basic

Følgende eksempel bruker den innebygde DimArray-funksjonen for å lage en matrise og deretter lagre den i celle "A1":

        Dim arrData as Variant
        arrData = DimArray(2, 1)
        arrData(0, 0) = 1 : arrData(1, 0) = 2 : arrData(2, 0) = 3
        arrData(0, 1) = "One" : arrData(1, 1) = "Two" : arrData(2, 1) = "Three"
        oDoc.SetArray("Sheet1.A1", arrData)

Dette eksemplet bruker RangeInit-metoden til ScriptForge Array-tjenesten for å lage en matrise med verdier som er deretter lagret fra celle "A1" og nedover.

        'Fyll første kolonne med verdier fra 1 til 1000
        oDoc.SetArray("Sheet1.A1", SF_Array.RangeInit(1, 1000))

##### I Python

        arrData = ((1, "One"), (2, "Two"), (3, "Three"))
        myDoc.SetArray("Sheet1.A1", arrData)

        myDoc.SetArray("Sheet1.A1", tuple(i + 1 for i in range(1000)))

For å dumpe hele innholdet i en matrise i et ark, bruk SetArray. For å dumpe innholdet i en matrise bare innenfor grensene til det målrettede celleområdet, bruk SetValue.

## SetCellStyle

Bruker den angitte cellestilen på det gitte målområdet. Hele utvalget oppdateres og resten av arket forblir urørt. Hvis cellestilen ikke eksisterer, oppstår det en feil.

Metoden returnerer en streng som representerer det modifiserte området som et celleområde.

### Syntaks:

svc.SetCellStyle(targetrange: str, style: str, opt filterformula: str, opt filterscope: str): str

### Parametre:

målområde: Området som stilen skal brukes på, som en streng.

stil: Navnet på cellestilen som skal brukes.

filterformula: En Calc-formel som skal brukes på det gitte området for å bestemme hvilke celler som vil bli påvirket. Den angitte formelen må returnere Sann eller Falsk. Hvis dette argumentet ikke er spesifisert, påvirkes alle celler i området.

filterscope: Bestemmer hvordan filterformula utvides til det gitte området. Dette argumentet er obligatorisk hvis en filterformula er spesifisert. Følgende verdier godtas:

- "CELL": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver celle i området.

- "RAD": Formelen som er spesifisert i filterformel-argumentet utvides én gang for hver celle i området.

- "KOLONNE": Formelen som er spesifisert i filterformula-argumentet utvides én gang for hver kolonne i området.

### Eksempel:

##### I Basic

        oDoc.SetCellStyle("A1:J1", "Heading 1")
        oDoc.SetCellStyle("A2:J100", "Neutral")

##### I Python

        myDoc.SetCellStyle("A1:J1", "Heading 1")
        myDoc.SetCellStyle("A2:J100", "Neutral")

Se ClearAll metodedokumentasjonen for eksempler på hvordan du bruker argumentene filterformel og filterscope.

## SetFormula

Setter inn den gitte (matrisen av) formel(er) i det angitte området. Størrelsen på det modifiserte området er lik størrelsen på området.

Metoden returnerer en streng som representerer det modifiserte området som et celleområde.

### Syntaks:

svc.SetFormula(targetrange: str, formula: any): str

### Parametre:

målområde: Området for å sette inn formlene, som en streng.

formel: En streng, en vektor eller en rekke strenger med de nye formlene for hver celle i målområdet.

Hele området oppdateres og resten av arket forblir uendret.

Hvis den gitte formelen er en streng, limes den unike formelen langs hele området med justering av de relative referansene.

Hvis størrelsen på formel er mindre enn størrelsen på målområde, tømmes de gjenværende cellene.

Hvis størrelsen på formel er større enn størrelsen på targetrange, kopieres formlene bare delvis til den fyller størrelsen på targetrange.

Vektorer utvides alltid vertikalt, bortsett fra hvis målområde har en høyde på nøyaktig 1 rad.

Calc-funksjoner som brukes i formel-argumentet må uttrykkes med deres engelske navn. Besøk Wiki-siden Liste over Calc-funksjoner for en fullstendig liste over Calc-funksjoner på engelsk.

### Eksempel:

##### I Basic

        oDoc.SetFormula("A1", "=A2")
        'Horisontal vektor, delvis tom
        oDoc.SetFormula("A1:F1", Array("=A2", "=B2", "=C2+10"))
        'D2 inneholder formelen "=H2"
        oDoc.SetFormula("A1:D2", "=E1")

##### I Python

        myDoc.SetFormula("A1", "=A2")
        myDoc.SetFormula("A1:F1", ("=A2", "=B2", "=C2+10"))
        myDoc.SetFormula("A1:D2", "=E1")

## SetValue

Lagrer den gitte verdien i det angitte området. Størrelsen på det modifiserte området er lik størrelsen på målområdet.

Metoden returnerer en streng som representerer det modifiserte området som et celleområde.

### Syntaks:

svc.SetValue(targetrange: str, value: any): str

### Parametre:

målområde: Området hvor den gitte verdien skal lagres, som en streng.

målområde: Området hvor den gitte verdien skal lagres, som en streng.

Hele området oppdateres og resten av arket forblir uendret. Hvis størrelsen på verdi er mindre enn størrelsen på målområde, vil de gjenværende cellene bli tømt.

Hvis størrelsen på verdi er større enn størrelsen på mål, blir verdi bare delvis kopiert til den fyller størrelsen på målgruppe .

Vektorer utvides vertikalt, bortsett fra hvis målområde har en høyde på nøyaktig 1 rad.

### Eksempel:

##### I Basic

        oDoc.SetValue("A1", 2)
        'Under verdimatrisen er mindre enn målområdet (resterende celler tømmes)
        oDoc.SetValue("A1:F1", Array(1, 2, 3))
        'Under Verdi og 'MålOmråde har samme størrelse
        oDoc.SetValue("A1:D2", SF_Array.AppendRow(Array(1, 2, 3, 4), Array(5, 6, 7, 8)))

Hvis du vil fylle en enkelt rad med verdier, kan du bruke funksjonen Forskyvning. I eksemplet nedenfor bør du vurdere at arrData er en endimensjonal matrise:

        Dim firstCell As String : firstCell = "A1"
        Dim lenArray As Integer : lenArray = UBound(arrData) - LBound(arrData) + 1
        Dim newRange As String : newRange = oDoc.Offset(firstCell, width = lenArray)
        oDoc.SetValue(newRange, arrData)

##### I Python

        myDoc.SetValue("A1", 2)
        myDoc.SetValue("A1:F1", (1, 2, 3))
        myDoc.SetValue("A1:D2", ((1, 2, 3, 4), (5, 6, 7, 8)))

        firstCell = "A1"
        newRange = doc.Offset(firstCell, width = len(arrData))
        doc.SetValue(newRange, arrData)

## ShiftDown

Flytter et gitt område med celler nedover ved å sette inn tomme rader. Gjeldende valg påvirkes ikke.

Avhengig av verdien av helerad-argumentet kan de innsatte radene enten spenne over bredden til det angitte området eller spenne over alle kolonnene i raden.

Denne metoden returnerer en streng som representerer den nye plasseringen av det opprinnelige området.

Hvis det forskyvede området overskrider arkkantene, skjer ingenting.

### Syntaks:

svc.ShiftDown(range: str, wholerow: bool = False, opt rows: int): str

### Parametre:

område: Området over hvilke rader skal settes inn, som en streng.

hele rad: Hvis satt til Usann (standard), vil bredden på de innsatte radene være den samme som bredden på det angitte området. Ellers vil den innsatte raden spenne over alle kolonnene i arket.

rader: Antall rader som skal settes inn. Standardverdien er høyden på det opprinnelige området. Antall rader må være et positivt tall.

### Eksempel:

##### I Basic

        ' Flytter området "A3:D3" ned en rad; påvirker bare kolonnene A til D
        oDoc.ShiftDown("A3:D3")
        ' Den innsatte raden spenner over alle kolonnene i arket
        oDoc.ShiftDown("A3:D3", WholeRow := True)
        ' Flytter området "A3:D3" ned med fem rader
        oDoc.ShiftDown("A3:D3", Rows := 5)
        ' Flytter området "A3:D10" ned med to rader og viser den nye plasseringen til det opprinnelige området
        Dim sNewRange as String
        sNewRange = oDoc.ShiftDown("A3:D10", Rows := 2)
        MsgBox sNewRange   ' $Sheet1.$A$5:$D$12

##### I Python

        myDoc.ShiftDown("A3:D3")
        myDoc.ShiftDown("A3:D3", wholerow = True)
        myDoc.ShiftDown("A3:D3", rows = 5)
        sNewRange = myDoc.ShiftDown("A3:D10", rows = 2)
        bas = CreateScriptService("Basic")
        bas.MsgBox(sNewRange)

## ShiftLeft

Sletter kolonnene lengst til venstre i et gitt område og flytter til venstre alle cellene til høyre for det berørte området. Gjeldende valg påvirkes ikke.

Avhengig av verdien til wholecolumn-argumentet kan de slettede kolonnene enten spenne over høyden til det angitte området eller spenne over alle rader i kolonnen.

Denne metoden returnerer en streng som representerer plasseringen av den gjenværende delen av startområdet. Hvis alle cellene i det opprinnelige området er slettet, returneres en tom streng.

### Syntaks:

svc.ShiftLeft(range: str, wholecolumn: bool = False, opt columns: int): str

### Parametre:

område: Området som celler vil bli slettet fra, som en streng.

helkolonne: Hvis satt til Usann (standard), vil høyden på de slettede kolonnene være den samme som høyden på det angitte området. Ellers vil de slettede kolonnene spenne over alle rader i arket.

kolonner: Antall kolonner som skal slettes fra det angitte området. Standardverdien er bredden på det opprinnelige området, som også er maksimumsverdien for dette argumentet.

### Eksempel:

##### I Basic

        ' Sletter området "B3:B6"; flytter venstre alle celler til høyre
        oDoc.ShiftLeft("B3:B6")
        ' Sletter den første kolonnen i området "A3:D6"
        oDoc.ShiftLeft("A3:D6", Columns := 1)
        ' De slettede kolonnene (A til D) dekker alle rader i arket
        oDoc.ShiftLeft("A3:D6", WholeColumn := True)

##### I Python

        myDoc.ShiftLeft("B3:B6")
        myDoc.ShiftLeft("A3:D6", Columns = 1)
        myDoc.ShiftLeft("A3:D6", WholeColumn = True)

## ShiftUp

Sletter de øverste radene i et gitt område og flytter oppover alle cellene under det berørte området. Gjeldende valg påvirkes ikke.

Avhengig av verdien av wholerow -argumentet kan de slettede radene enten spenne over bredden til det angitte området eller spenne over alle kolonnene i raden.

Denne metoden returnerer en streng som representerer plasseringen av den gjenværende delen av startområdet. Hvis alle cellene i det opprinnelige området er slettet, returneres en tom streng.

### Syntaks:

svc.ShiftUp(range: str, wholerow: bool = False, opt rows: int): str

### Parametre:

område: Området som celler vil bli slettet fra, som en streng.

wholerow : Hvis satt til Usann (standard), vil bredden på de slettede radene være den samme som bredden på det angitte området. Ellers vil den slettede raden dekke alle kolonnene i arket.

rader: Antall rader som skal slettes fra det angitte området. Standardverdien er høyden på det opprinnelige området, som også er maksimumsverdien for dette argumentet.

### Eksempel:

##### I Basic

        ' Sletter området "A3:D3"; flytter alle cellene under seg én rad opp
        oDoc.ShiftUp("A3:D3")
        ' Sletter den første raden i området "A3:D6"
        oDoc.ShiftUp("A3:D6", Rows := 1)
        ' De slettede radene spenner over alle kolonnene i arket
        oDoc.ShiftUp("A3:D6", WholeRow := True)

##### I Python

        myDoc.ShiftUp("A3:D3")
        myDoc.ShiftUp("A3:D6", rows = 1)
        myDoc.ShiftUp("A3:D6", wholerow = True)

## ShiftRight

Flytter et gitt celleområde til høyre ved å sette inn tomme kolonner. Gjeldende valg påvirkes ikke.

Avhengig av verdien til wholecolumn-argumentet kan de innsatte kolonnene enten spenne over høyden til det angitte området eller spenne over alle rader i kolonnen.

Denne metoden returnerer en streng som representerer den nye plasseringen av det opprinnelige området.

Hvis det forskjøvede området overskrider arkkantene, skjer ingenting.

### Syntaks:

svc.ShiftRight(range: str, wholecolumn: bool = False, opt columns: int): str

### Parametre:

område: Området som vil ha tomme kolonner satt inn til venstre, som en streng.

helkolonne: Hvis satt til False (standard), vil høyden på de innsatte kolonnene være den samme som høyden på det spesifiserte området. Ellers vil de innsatte kolonnene spenne over alle radene i arket.

kolonner: Antall kolonner som skal settes inn. Standardverdien er bredden på det opprinnelige området.

### Eksempel:

##### I Basic

        ' Flytter området "A3:A6" til høyre ved én kolonne; påvirker bare rad 3 til 6
        oDoc.ShiftRight("A3:A6")
        ' Flytter området "A3:A6" til høyre med fem kolonner
        oDoc.ShiftRight("A3:A6", Columns := 5)
        ' Den innsatte kolonnen dekker alle rader i arket
        oDoc.ShiftRight("A3:A6", WholeColumn := True)

##### I Python

        myDoc.ShiftRight("A3:A6")
        myDoc.ShiftRight("A3:A6", columns = 5)
        myDoc.ShiftRight("A3:A6", wholecolumn = True)

## SortRange

Sorter det gitte området på et hvilket som helst antall kolonner/rader. Sorteringsrekkefølgen kan variere etter kolonne/rad. Hvis antallet sorteringsnøkler er > 3, sorteres området flere ganger, etter grupper på 3 nøkler, med utgangspunkt i den siste nøkkelen. Den returnerer en streng som representerer det modifiserte celleområdet. Størrelsen på det modifiserte området er fullt ut bestemt av størrelsen på kildeområdet.

### Syntaks:

svc.SortRange(range: str, sortkeys: any, sortorder: any = "ASC", destinationcell: str = "", containsheader: bool = False, casesensitive: bool = False, sortcolumns: bool = False): str

### Parametre:

område: Området som skal sorteres, som en streng.

sorttaster: En skalar (hvis 1 kolonne/rad) eller en rekke kolonne-/radnummer som starter fra 1.

sortorder: En skalar eller en rekke strenger som inneholder verdiene "ASC" (stigende), "DESC" (synkende). Hvert element er sammenkoblet med det tilsvarende elementet i sortkeys. Hvis sortorder-matrisen er kortere enn sortkeys, blir de resterende nøklene sortert i stigende rekkefølge.

destinasjonscelle: Destinasjonscellen til det sorterte celleområdet, som en streng. Hvis et område er gitt, vurderes kun dens øverste venstre celle. Som standard overskrives kildeområdet.

containsheader: Når Sann er den første raden/kolonnen ikke sortert.

skiller mellom store og små bokstaver: Bare for strengsammenligninger. Standard = Sann

sortcolumns: Når True er satt til, sorteres kolonnene fra venstre mot høyre. Standard = False: radene sorteres ovenfra og ned.

### Eksempel:

##### I Basic

        'Sorter område basert på kolonne A (stigende) og C (synkende)
        oDoc.SortRange("A2:J200", Array(1, 3), Array("ASC", "DESC"), CaseSensitive := True)

##### I Python

        myDoc.SortRange("A2:J200", (1, 3), ("ASC", "DESC"), casesensitive = True)

Alle ScriptForge Grunnleggende rutiner eller identifikatorer som er prefikset med et understrekingstegn "_" er reservert for intern bruk. De er ikke ment å brukes i grunnleggende makroer eller Python-skript.

Lignende emner

SFDocuments.Chart-tjeneste

SFDocuments.Dokument tjeneste

ScriptForge.UI tjeneste

Supporter oss!