Indhold

# Tjenesten SFDocuments.Calc

Det delte bibliotek SFDocuments giver et antal metoder og egenskaber til at facilitere adminstrationen og håndteringen af LibreOffice-dokumenter.

Tjenesten SFDocuments.Calc er en delmængde af tjenesten SFDocuments.Document. Alle metoder og egenskaber, der er defineret for tjenesten Document (dokument) kan også tilgås med instansen af Calc-tjenesten.

Tjenesten Calc er fokuseret på:

- Håndteringsark i et Calc dokument (kopier, indsæt, flyt osv.)

- Dataudveksling mellem Basic data-strukturer og Calc-områder

- Kopiering og import af enorme datamængder amounts of data

Denne hjælpeside beskriver metoder og egenskaber, der kun er gyldige for Calc-dokumenter.

## Kald af tjeneste

Før brug af tjenesten Calc skal biblioteket ScriptForge indlæst eller importeret:

• Basic-makroer kræver, at biblioteket ScriptForge indlæses med følgende udtryk:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python-scripts kræver import af scriptforge-modulet:
from scriptforge import CreateScriptService

Tjenesten Calc er nært beslæget med tjenesten UI fra biblioteket ScriptForge. Herunder er der nogle få eksempler på, hvordan tjenesten Calc kan kaldes.

##### I Basic

Kodestumpen herunder opretter et eksemplar af tjenesten Calc, der svarer til det aktuelle Calc-dokument.

        Set oDoc = CreateScriptService("Calc")

En anden måde at oprette et eksemplar af tjenesten Calc på er at bruge tjensten UI. I det følgende eksempel oprettes et nyt Calc-dokument og oDoc er et eksemplar af tjenesten Calc:

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

Eller med metoden OpenDocument fra tjenesten UI:

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

Det er også muligt at instantiere Calc-servicen, som specificerer et vinduesnavn for CreateScriptService-metoden:

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

I eksemplet herover er "MinFil.ods" navnet på et åbent dokumentvindue. Hvis dette argument ikke angives, tages udgangspunktet i det aktive vindue.

Det er også muligt at kalde Calc-servicen ved hjælp af det dokument, som der henvises til af ThisComponent. Dette er specielt nyttigt, når du kører en makro fra Basic IDE.

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

Det anbefales at frigøre ressourcer efter brug:

        Set oDoc = oDoc.Dispose()

Hvis dokumentet imidlertid var lukket ved hjælp af metoden CloseDocument, bliver det unødvendigt at frigøre ressourcer med den ovennævnte kommando.

##### 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)

Brug af forstavelsen "SFDocuments." under kald af tjenesten er frivillig.

## Definitioner

Mange metoder kræver et "Ark" eller et "Område" som argument. Enkelt-celler anses for at være et særtilfælde af et Område.

Begge kan udtrykkes enten som en streng eller som en reference (=objekt) afhængigt af situationen:

- Indenfor en bestemt Calc -instans, er ark og områder angivet som strenge som "Arkt1" og "D2:F6".

- Derudover returnerer egenskaberne .Sheet og .Range en reference, som kan bruges som argument i en metode, der kaldes fra en anden instans af Calc-tjenesten.

### Eksempel:

Eksemplet herunder kopierer data fra dokument A (åbnet 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 string eller et object frembragt af egenskaben .Sheet.

Genvejen "~" (tilde) repræsenterer det aktuelle ark.

### RangeName

Enten en streng, der angiver et sæt sammenhængende celler, placeret i et ark i den aktuelle instans eller et object frembragt af egenskaben .Range.

Genvejen "~" (tilde) repræsenterer den aktuelle markering eller det første område, hvis der er markeret flere områder.

Genvejen "*" repræsenterer alle anvendte celler.

Det er valgfrit at angive arknavnet, når du definerer et område. Hvis der ikke er opgivet noget arknavn, så bruges det aktive ark. Omgivende enkle anførselstegn (' ') og $-tegn er tilladte, men ignoreres.

Når du specificerer SheetName (arknavnet) som en streng, så er det nødvendigt at bruge enkle anførselstegn (' '), hvis navnet indeholder mellemrum " " eller punktum ".".

Eksemplerne nedenfor illustrerer, i hvilke tilfælde det er obligatorisk at bruge enkle anførselstegn:

          ' Brugen af enkle anførselstegn er valgfri
          oDoc.clearAll("SheetA.A1:B10")
          oDoc.clearAll("'SheetA'.A1:B10")
          ' Brugen af enkle anførselstegn er påkrævet
          oDoc.clearAll("'Sheet.A'.A1:B10")

Udover egenskaben CurrentSelection tager tjenesten Calc kun hensyn til enkeltområder af 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 anvendte celler på et givet ark
1) $'ArkX'.A:A (kolonne A) 2) 3:5 (række 3 to 5) | Alle celler i sammenhængende celler eller rækker op til den sidste anvendte celle
mitOmråde | Et område ved navn "mitOmråde" på regnearksniveau
1) ~.vilkårligtOmråde 2) ArkX.vilkårligtOmråde | Et områdenavn på arkniveau
mitDok.Område("ArkX.D2:F6") | Et område på arket ArkX i den fil, der er knyttet til Calc-instansen af myDoc
~.~ eller ~ | Den aktuelle markering på det aktive ark

## Egenskaber

Alle de egenskaber , der generiske til et vilkårligt dokument er implicit også anvendelige på Calc-dokumenter. Læs flere oplysninger i Dokumenttjenesten Hjælpeside.

Egenskaberne, specielt tilgængelige for Calc-dokumenter, er:

Navn | Skrivebeskyttet | Argument | Returtype | Beskrivelse
--- | --- | --- | --- | ---
CurrentSelection | Nej | Ingen | Streng eller en matrix af strenge | Det enkelte valgte område som en streng eller en liste over de valgte områder som en matrix.
FirstCell | Yes | SheetName (arknavn) eller RangeName (områdenavn) som en streng | String | Returnerer den første brugte celle i et givent område eller ark.
FirstColumn | Yes | SheetName (arknavn) eller RangeName (områdenavn) som en streng | Long | Returnerer kolonnenummeret yderst til venstre i et givent område eller ark.
FirstRow | Yes | SheetName (arknavn) eller RangeName (områdenavn) som en streng | Long | Returnerer det øverste rækkenummer i et et givent område eller ark.
Height | Ja | RangeName (OmrådeNavn) som en streng | Long | Antallet af rækker (>= 1) i et givent område.
LastCell | Ja | SheetName (arknavn) eller RangeName (områdenavn) som en streng | String | Returnerer den sidste brugte celle i et givet område eller ark.
LastColumn | Ja | SheetName (arknavn) eller RangeName (områdenavn) som en streng | Long | Den sidst brugte kolonne i et givet område eller ark.
LastRow | Ja | SheetName (arknavn) eller RangeName (områdenavn) som en streng | Long | Den sidste brugte række i et givet område eller ark.
Range | Ja | RangeName (OmrådeNavn) som en streng | Object | En områdereference, der kan bruges som argument af metoder såsom CopyToRange (kopier_til_område).
Region | Yes | RangeName (OmrådeNavn) som en streng | String | Returnerer adressen på det mindste areal, der indeholder det angivne område, så området er omgivet af tomme eller eller arkkanter. Dette svarer til at anvende genvejen Kommando + *Ctrl + * på et givet område.
Sheet | Ja | ArkNavn som streng | Object | En arkreference, der kan bruges som et argument af metoder såsom CopySheet (kopier_ark).
SheetName | Ja | RangeName (OmrådeNavn) som en streng | String | Returnerer arknavnet på en given områdeadresse.
Sheets | Ja | Ingen | Matrix af strenge | Listen med navne på alle eksisterende ark.
Width | Ja | RangeName (OmrådeNavn) som en streng | Long | Antallet af kolonner (>= 1) i det givne område.
XCellRange | Ja | RangeName (OmrådeNavn) som en streng | Object | Et com.sun.star.Table.XCellRange UNO-objekt.
XSheetCellCursor | Yes | RangeName (OmrådeNavn) som en streng | Object | Et com.sun.star.sheet.XSheetCellCursor UNO-objekt. Efter flytning af markøren kan den resulterende områdeaddresse tilgås gennem markørobjektets UNO-egenskab AbsoluteName (absolut_navn), som returnerer en strengværdi, der kan bruges som argument for Calc-tjenestens egenskaber og metoder.
XSpreadsheet | Ja | ArkNavn som streng | Object | Et com.sun.star.sheet.XSpreadsheet UNO-objekt.

Besøg LibreOffice API-dockmentations-websted for at få mere at vide om UNO-objekterne XCellRange (X_celle_område), XSheetCellCursor (X_ark_celle_markør) og XSpreadsheet (X_regneark).

## Metoder

Liste over metoder i tjenesten Calc

A1Style
Activate
Charts
ClearAll
ClearFormats
ClearValues
CompactLeft
CompactUp
CopySheet
CopySheetFromFile
CopyToCell
CopyToRange
CreateChart
CreatePivotTable
DAvg
DCount

DMax
DMin
DSum
ExportRangeToFile
Forms
GetColumnName
GetFormula
GetValue
ImportFromCSVFile
ImportFromDatabase
ImportStylesFromFile
InsertSheet
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 baseret på arkkoordinater, dvs. række- og kolonne-numre.

Hvis kun et par koordinater er givet, returneres adressen til en enkelt celle. Flere argumenter kan angive cellen nederst til højre af det firkantede område.

### Syntaks:

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

### Parametre:

række1, kolonne1: Angiv række- og kolonne-numre på cellen øverst-til-venstre i det område, der betragtes. Række- og kolonne-numre begynder med 1.

række2, kolonne2: Angiv række- og kolonnenumre på cellen nederst-til-højre på området, der betragtes. Hvis disse argumenter ikke er opgivet eller hvis der opgives værdier er mindre end række1 og kolonne1, returneres adressen på enkelt-celle-området, repræsenteret af række1 og kolonne1.

arknavn: Navnet på arket, der skal tilføjes til den returnerede arkaddresse. Arket skal eksistere. Standardværdien er "~", svarende til det aktuelt aktive ark.

### Eksempel:

Eksemplerne herunder i Basic og Python betragter "Ark1" som det aktuelt aktive ark.

##### 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 A1Typografi kan kombineres med enhver af de mange egenskaber og metoder i tjenesten Calc, der kræver et område som argument, såsom GetValue (Hent_værdi), GetFormula (Hent_formular), ClearAll (Ryd_alle) osv.

## Activate

Hvis argumentet sheetname (arknavn) opgives, aktiveres det givne ark og det bliver det aktuelt valgte ark. Hvis argumentet mangler, aktiveres dokumentvinduet.

### Syntaks:

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

### Parametre:

sheetname: Navnet på det ark, der skal aktiveres i dokumentet. Standardværdien er en tom streng, der betyder, at dokumentvinduet bliver aktiveret, uden at det aktive ark ændres.

### Eksempel:

Eksemplet herunder aktiverer arket ved navn "Ark4" i det aktuelt aktive dokument.

##### 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 af et ark giver kun mening, hvis den udføres på et Calc-dokument. For at sikre dig, at du har et Calc-dokument i hænderne kan du bruge dokumentobjektets egenskab isCalc, som returnerer True, hvis der et Calc-dokument og ellers False otherwise.

## Charts

Returnerer enten listen med navnene på diagramobjekterne på et givet ark eller en enkelt instans afChart-tjenesten.

- Hvis udelukkende sheetname (arknavnet) er angivet, returneres en nul-baseret matrix af strenge, der indeholder navnene på alle diagrammer.

- Hvis der er givet et chartname, returneres der et enkelt objekt svarende til det ønskede diagram. Det angivne diagram skal eksistere.

### Syntaks:

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

### Parametre:

sheetname (arknavn): Navnet på arket, hvorfra listen over diagrammer skal hentes eller hvor det angivne ark er placeret.

diagramnavn: Det brugerdefinerede navn på diagramobjektet, der skal returneres. Hvis diagramment ikke har et brugerdefineret navn,kan det interne objektnavn bruges. Hvis dette argument mangler, returneres listen over diagramnavne i det angivne ark.

Brug Sidepanelet Navigator til at tjekke de navne, der er knyttet til diagrammerne under kategorien OLE-objekter.

### Eksempel:

##### I Basic

Eksemplet herunder viser antallet af diagram-objekter på "Ark1".

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

Det følgende eksempel tilgår diagrammet "MyChart" på "Ark1" og printer dets type.

        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

Rydder alt indhold og alle formater i det givne område.

Du kan specificere en filterformel for at bestemme, hvilke celler der skal påvirkes.

### Syntaks:

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

### Parametre:

range: Det område, som skal slettes, som en streng.

filterformula: En Calc-formel, som skal anvendes på det givne område til at bestemme, hvilke celler der vil blive påvirket. Den angivne formel skal returnere True (sand) eller False (falsk). Hvis dette argument ikke angives, så bliver alle celler i området påvirket.

filterscope (filter-virkefelt): Bestemmer hvordan filterformula udvides til det givne område. Dette argument er obligatorisk, hvis filterformula er angivet. Følgende værdier accepteres:

- "CELL": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver celle i området range.

- "ROW": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver række i området range.

- "COLUMN": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver kolonne i området range.

### Eksempel:

##### I Basic

        ' Rydder alle celler i området ArkX.A1:J10
        oDoc.ClearAll("ArkX.A1:J10")
        ' Rydder alle celler i området ArkX.A1:J10, som har en værdi større end 100
        oDoc.ClearAll("ArkX.A1:J10", "=ArkX.A1>100", "CELL")
        ' Rydder alle rækker i området ArkX.A1:J10, hvor summen er større end 500
        oDoc.ClearAll("ArkX.A1:J10", "=SUM(ArkX.A1:J1)>500", "ROW")
        ' Rydder alle kolonner i området ArkX.A1:J10 hvis sum er større end 500
        oDoc.ClearAll("ArkX.A1:J10", "=SUM(ArkX.A1:A10)>500", "COLUMN")

##### I Python

        myDoc.ClearAll("ArkX.A1:F10")
        myDoc.ClearAll("ArkX.A1:J10", "=ArkX.A1>100", "CELL")
        myDoc.ClearAll("ArkX.A1:J10", "=SUM(ArkX.A1:J1)>100", "ROW")
        myDoc.ClearAll("ArkX.A1:J10", "=SUM(ArkX.A1:A10)>100", "COLUMN")

## ClearFormats

Rydder formater og typografier i det givne område.

Du kan specificere en filterformel for at bestemme, hvilke celler der skal påvirkes.

### Syntaks:

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

### Parametre:

område: Det område, hvis formater og typografier skal ryddes, som en streng.

filterformula: En Calc-formel, som skal anvendes på det givne område til at bestemme, hvilke celler der vil blive påvirket. Den angivne formel skal returnere True (sand) eller False (falsk). Hvis dette argument ikke angives, så bliver alle celler i området påvirket.

filterscope (filter-virkefelt): Bestemmer hvordan filterformula udvides til det givne område. Dette argument er obligatorisk, hvis filterformula er angivet. Følgende værdier accepteres:

- "CELL": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver celle i området range.

- "ROW": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver række i området range.

- "COLUMN": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver kolonne i området range.

### Eksempel:

##### I Basic

          oDoc.ClearFormats("SheetX.*")

##### I Python

        myDoc.ClearFormats("SheetX.*")

Se dokumentationen for ClearAll-metoden for eksempler på, hvordan du bruger argumenterne filterformula og filterscope.

## ClearValues

Rydder værdier og formler i det givne område.

Du kan specificere en filterformel for at bestemme, hvilke celler der skal påvirkes.

### Syntaks:

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

### Parametre:

område: Det område, hvis værdier og formler skal ryddes, som en streng.

filterformula: En Calc-formel, som skal anvendes på det givne område til at bestemme, hvilke celler der vil blive påvirket. Den angivne formel skal returnere True (sand) eller False (falsk). Hvis dette argument ikke angives, så bliver alle celler i området påvirket.

filterscope (filter-virkefelt): Bestemmer hvordan filterformula udvides til det givne område. Dette argument er obligatorisk, hvis filterformula er angivet. Følgende værdier accepteres:

- "CELL": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver celle i området range.

- "ROW": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver række i området range.

- "COLUMN": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver kolonne i området range.

### Eksempel:

##### I Basic

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

##### I Python

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

Se dokumentationen for ClearAll-metoden for eksempler på, hvordan du bruger argumenterne filterformula og filterscope.

## CompactLeft

Sletter kolonnerne i et angivet område, der matcher et filter, der er udtrykt som en Calc-formel. Filtret anvendes på hver enkelt kolonne for at bestemme, om den skal slettes eller ej.

Den slettede kolonne kan begrænses til højden af det angivne område eller spænde over hele arkes højde. På den måde slettes hele kolonner.

Denne metode returnerer en streng med områdeadressen på det komprimerede område. Hvis alle kolonner er slettet, returneres en tom streng.

Hvis der er valgt et celleområde, vil et kald af denne metode ikke påvirke markeringen.

### Syntaks:

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

### Parametre:

område: Det område, hvorfra kolonner skal slettes, som en streng.

hele kolonnen: Hvis denne indstilling er sat til True (Sand), bliver hele kolonnen slettet fra arket. Standardværdien er False (Falsk), hvilket betyder, at den slettede kolonne bliver begrænset til højden af det angivne range (område).

filterformel: Det filter, der skal anvendes på hver enkelt for afgøre, om den skal slettes eller ej. Filtret udtrykkes som en Calc-formel, der skal anvendes på den første kolonne. Når formlen returnerer Sand for en kolonne, bliver den slettet. Standardfiltret sletter alle tomme kolonner.

Antag for eksempel, at området A1:J200 er markeret (højde = 200), således at standardformlen er =(COUNTBLANK(A1:A200)=200). Dette betyder, at hvis alle 200 celler i den første kolonne (kolonne A) er tomme, bliver kolonnen slettet. Bemærk, at formlen kun er udtrykt i henseende til den første kolonne. Intern vil metoden CompactLeft generaliserer denne formel til alle de resterende kolonner.

Calc-funktioner brugt i argumentet filterformula må udtrykkes med brug af deres engelske navne. Besøg Wiki-siden List of Calc functions for en komplet liste over Calc-funktioner på engelsk. For en liste over funktionernes danske og engelske navne, se DA/Calcfunktioner

### Eksempel:

##### I Basic

        ' Slet alle tomme kolonner i området G1:L10 fra Ark1
        newrange = oDoc.CompactLeft("Ark1.G1:L10")
        ' Eksemplet herunder ligner, men hele kolonnen slettes fra arket
        newrange = oDoc.CompactLeft("Ark1.G1:L10", WholeColumn := True)
        ' Sletter alle kolonner, hvor den første række er mærket med et "X"
        newrange = oDoc.CompactLeft("Ark1.G1:L10", FilterFormula := "=(G1=""X"")")
        ' Sletter alle kolonner, hvor summen af værdierne i kolonnen er ulige
        newrange = oDoc.CompactLeft("Ark1.G1:L10", FilterFormula := "=(MOD(SUM(G1:G10);2)=1)")

##### I Python

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

## CompactUp

Sletter de rækker i et angivet område, der matcher et filter, der er udtrykt som en Calc-formel. Filtret anvendes på hver enkelt række for at bestemme, om den skal slettes eller ej.

De slettede rækker kan begrænses til bredden af den angivne område eller spænde over bredden af hele arket, så hele rækker slettes.

Denne metode returnerer en streng med område adressen på det komprimerede område. Hvis alle rækker er slettet, returneres der en tom streng.

Hvis der er valgt et celleområde, vil kald af denne metode ikke påvirke markeringen.

### Syntaks:

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

### Parametre:

område: Det område, hvorfra rækker vil blive slettet, som en streng.

helrække: Hvis denne indstilling er sat til True (Sand), bliver hele rækken slettet fra arket. Standardværdien er False (Falsk), hvilket betyder, at den slettede række bliver begrænset til bredden af det angivne range (område).

filterformel: Filtret, der skal anvendes på hver enkelt række for at bestemme, om den skal slettes eller ej. Filtret er udtrykt som en Calc-formel, der bør anvendes på den første række. Når formlen returnerer True (Sand) for en række, bliver den slettet. Standardfiltret sletter alle tomme rækker.

Antag for eksempel, at området A1:J200 er valgt, så er standardformlen =(COUNTBLANK(A1:J1)=10). Det betyder, at hvis alle 10 celler i den første række er tomme, bliver rækken slettet. Bemærk, at formlen kun er udtrykt i henseende til den første række. Internt generaliserer metoden CompactUp denne formel for alle de resterende rækker.

Calc-funktioner brugt i formlen specificeret i filterformula-argumentet må udtrykkes med brug af deres engelske navne. Besøg Wiki-siden List of Calc functions for en komplet liste over Calc-funktioner på engelsk. For en liste over funktionernes danske og engelske navne, se DA/Calcfunktioner

### Eksempel:

##### I Basic

        ' Slet alle tomme rækker i området G1:L10 fra Ark1
        newrange = oDoc.CompactUp("Ark1.G1:L10")
        ' Eksemplet nedenfor ligner, men hele rækken slettes fra arket
        newrange = oDoc.CompactUp("Ark1.G1:L10", WholeRow := True)
        ' Sletter alle rækker, hvor den første kolonne er mærket med et "X"
        newrange = oDoc.CompactUp("Ark1.G1:L10", FilterFormula := "=(G1=""X"")")
        ' Sletter alle rækker, hvor summen af rækkens værdier er ulige
        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 = True)
        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 bestemt ark før et eksisterende ark eller i slutningen af listen over ark. Det ark, der skal kopieres, kan være indeholdt i et vilkårligt åbent Calc-dokument. Returnerer True, hvis det lykkes.

### Syntaks:

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

### Parametre:

Arknavn: Navnet på det ark, som skal kopieres, som en streng eller en reference til det som et objekt.

nytnavn: Navnet på det ark, der skal indsættes. Navnet må ikke være brugt i dokumentet.

før_ark: Navnet (streng) eller indeksnummer (startede fra 1) på det ark, som det kopierede ark skal indsættes foran. Dette argument er valgfrit og standard-adfærden er at indsætte det kopierede ark på sidstepladsen.

### Eksempel:

##### I Basic

Følgende eksempel laver en kopi af arket "ArkX" og placerer den som det sidste ark i det aktuelle dokument. Navnet på det kopierede ark er "ArkY".

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

Eksemplet herunder kopierer "ArkX" fra "FilA.ods" og indsætter det på den bagerste placering i "FilB.ods" med navnet "ArkY":

          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 at kopiere ark mellem åbne dokumenter bruger du CopySheet. For at kopiere ark fra dokumenter, der er lukkede, bruger du CopySheetFromFile.

## CopySheetFromFile

Kopierer et bestemt ark fra et lukket Calc-dokument og indsætter det foran et eksisterende ark eller i slutningen af listen over ark i den fil, der henvises til af et Document-objekt.

Hvis arket ikke eksisterer, sættes der et Fejl-flag. Hvis filen ikke er en gyldig Calc-fil, indsættes et tomt ark. Hvis kildearket ikke eksisterer i input-filen, indsættes en fejlmeddelelse øverst i det netop indsatte ark.

### Syntaks:

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

### Parametre:

filnavn: Identificerer den fil, der skal åbnes. Den skal følge notationen i SF_FileSystem.FileNaming. Filen må ikke være beskyttet med en adgangskode.

arknavn: Navnet på det ark, der skal kopieres, som en streng.

nytnavn: Navnet på det kopierede ark, der skal indsættes i dokumentet. Navnet må ikke være i brug i dokumentet.

førark: Navnet (streng) eller indeksnummer (startende fra 1) på det ark, som det kopierede ark skal indsættes foran. Dette argument er valgfrit og standardadfærden er at indsætte det kopierede ark på sidstepladsen.

### Eksempel:

Følgende eksempel kopierer "ArkX" fra "minFil.ods" og indsætter det allerforrest i det dokument, der refereres til som "oDoc", som "ArkY".

##### 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 angivet kildeområde (værdier, formler og formater) til et målområde eller -celle. Metoden reproducerer operationen Kopier/Indsæt's adfærd fra et område til en enkelt celle.

Den returnerer en streng, der repræsenterer et ændret celleområde. Størrelsen på det ændrede areal bestemmes helt af størrelsen på kildearealet.

Kildeområdet kan tilhøre et andet åbent dokument.

### Syntaks:

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

### Parametre:

kildeområde: Kildeområdet som en streng, når det tilhører det samme dokument, eller som en reference, når det tilhører et andet åbent Calc-dokument.

målcelle: Målcellen, hvor det kopierede celleområde skal indsættes, som en streng. Hvis der er opgivet et celleområde, tages der kun hensyn til cellen øverst, til venstre i det.

### Eksempel:

##### I Basic

Næste er et eksempel, hvor kilde og mål er i den samme fil:

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

Eksemplet herunder ilustrerer, hvordan du kopierer et område fra et andet åbent Calc-dokument:

        Dim ui as Variant : ui = CreateScriptService("UI")
        Dim oDocSource As Object, oDocDestination As Object
        'Åben kildedokumentet i baggrunden (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")
        'Glem ikke at lukke kildedokumentet, fordi det blev åbnet 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 at simulere Kopier/Indsæt fra et område til en enkelt celle, bruger du CopyToCell. For at simulere Kopier/Indsæt fra et område til et større område (med den samme mangfoldiggjort flere gange) bruger du CopyToRange.

## CopyToRange

Kopierer et angivet kildeområde nedad og/eller mod højre (værdier, formler og formater) til et målområde. Metoden imiterer en Kopier/Indsæt-operations adfærd fra et kildeområde til et større målområde.

- Hvis målområdets højde (eller bredde) er > 1 række (eller kolonne), skal kildens højde (eller bredde) være <= højden (eller bredden) på målet. Ellers sker der intet.

- Hvis målområdets højde (eller bredde) er = 1 , udvides kilden nedad (eller mod højre) op til kildeområdets højde (eller bredde).

Metoden returnerer en streng, der repræsenter det ændrede celleområde.

Kildeområdet kan tilhøre et andet åbent dokument.

### Syntaks:

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

### Parametre:

kildeområde: Kildeområdet som en streng, når det tilhører det samme dokument, eller som en referrence, når det tilhører et andet åbent Calc-dokument.

målområde: Målet for det kopierede celleområde, som en streng.

### Eksempel:

##### I Basic

Kopiér inden for det samme dokument:

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

Kopiér fra en fil til en anden:

        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

Opretter et nyt diagram-objekt, der viser data i det angivne område. Det returnerede diagram-objekt kan manipuleres videre med tjenesten Chart (diagram).

### Syntaks:

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

### Parametre:

diagramnavn: Det brugerdefinerede navn på det diagram, der skal oprettes. Navnet skal være unikt på det samme ark.

arknavn: Navnet på det ark, hvor diagrammet bliver placeret.

område: Det område, der skal bruges som datakilde til diagrammet. Området kan referere til et vilkårligt ark i Calc-dokumentet.

kolonneoverskrift: Når True (sand), bruges den øverste række af området som etiketter for kategori-aksen eller forklaring (Standard = False (falsk)).

rækkeoverskrift: Når True (sand), bruges kolonnen yderst til venstre som etiketter for kategoriaksen eller forklaringen. (Standard = False (falsk)).

### Eksempel:

Eksemplerne herunder i Basic og Python opretter et diagram med de data, der indeholdt i området "A1:B5" på "Ark1", og placerer diagrammet på "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 hjælpesiden om ScriptForge's Diagram-tjeneste for at få mere at vide om, hvordan diagram-objekter manipuleres videre. Det er muligt at ændre egenskaber som diagramtype, diagram og aksetitler og diagramplacering.

## CreatePivotTable

Opretter en ny pivottabel med egenskaber defineret af de argumenter, som overføres til metoden.

Der skal angives et navn for pivottabellen. Hvis en pivottabel med samme navn allerede eksisterer i det pågældende ark, vil den blive erstattet uden advarsel.

Denne metode returnerer en streng, som indeholder området, hvor den nye pivottabel blev placeret.

### 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 brugerdefinerede navn på den nye pivottabel.

sourcerange: Området med de rå data, som en streng. Det bliver antaget, at den første række indeholder de feltnavne, som bruges af pivottabellen.

targetcell: Den øverste venstre celle for den nye pivottabels placering. Hvis et område er angivet, vurderes kun på den øverste venstre celle.

datafields: Dette kan enten være en enkelt streng eller et array med strenge, som definerer feltnavne og funktioner, der skal bruges. Når et array er angivet, må det følge syntaksen Array("Feltnavn[;Funktion]", ...).

De tilladte funktioner er: Sum, Count, Average, Max, Min, Product, CountNums, StDev, StDevP, Var, VarP og Median. Funktionsnavne må angives på engelsk. Når alle værdier er numeriske, er Sum standardfunktionen, ellers er standardfunktionen Count (tæl).

rowfields: En enkelt streng eller et array med feltnavne, der vil blive brugt som pivottabellens rækker.

columnfields: En enkelt streng eller et array med feltnavne, der vil blive brugt som pivottabellens kolonner.

filterbutton: Bestemmer om en filterknap vil blive vise over pivottabellen (standard = True).

rowtotals: Angiver om en separat kolonne til rækkesummer vil blive tilføjet til pivottabellen (standard = True).

columntotals: Angiver om en separat række til kolonnesummer vil blive tilføjet til pivottabellen (standard = True).

### 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 = Array(Array("Vare", "Stat", "Team", "2002", "2003", "2004"), _
            Array("Bøger", "Michigan", "Jean", 14788, 30222, 23490), _
            Array("Slik", "Michigan", "Jean", 26388, 15641, 32849), _
            Array("Kuglepenne", "Michigan", "Jean", 16569, 32675, 25396), _
            Array("Bøger", "Michigan", "Volker", 21961, 21242, 29009), _
            Array("Slik", "Michigan", "Volker", 26142, 22407, 32841))
        sTable = oDoc.SetArray("A1", vData)
        sPivot = oDoc.CreatePivotTable("PT1", sTable, "H1", _
            Array("2002", "2003;count", "2004;average"), _ ' Tre datafelter
            "Vare", _ ' Et enkelt rækkefelt
            Array("Stat", "Team"), False) ' To kolonnefelter

##### I Python

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

Du kan lære mere om pivottabeller i LibreOffice Calc på hjælpesiden Pivottabel.

## DAvg, DCount, DMax, DMin and DSum

Funktionerne Average (gennemsnit), Count (tæl), Max, Min og Sum kan bruges på alle celler med talværdier i et angivet område. Værdier fra filtrerede og skjulte rækker og søjler medtages ikke, ligesom for funktionerne på statuslinjen.

### 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 funktionen skal anvendes på, som en streng.

### Eksempel:

Eksemplet herunder anvender funktionen Sum på området "A1:A1000" på det aktuelt valgte ark:

##### I Basic

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

##### I Python

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

I det givne område bliver celler, der indeholder tekst, ignoreret af alle disse funktioner. For eksempel tæller metoden Dtæl ikke celler med tekst, men kun numeriske celler.

## ExportRangeToFile

Eksporterer det angivne område som en billedfil eller PDF-fil.

Denne metode returnerer True hvis filen blev succesfuldt gemt.

Skjulte rækker eller kolonner i det angivne område bliver ikke eksporteret til filen.

### Syntaks:

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

### Parametre:

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

filename: Navnet på filen, der skal gemmes til. Navnet må følge SF_FileSystem.FileNaming-notationen.

imagetype: Identificerer filtypen. Mulige værdier er "jpeg", "pdf" (standard) og "png".

overwrite: Når sat til True overskrives en eventuel eksisterende fil med det angivne filnavn (standard = False).

### 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 filen, hvis den findes i forvejen
        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)

## Forms

Afhængigt af de opgivne parametere returnerer denne metode:

- En nul-baseret matrix (eller en tuple i Python) med alle navnene på alle de formularer, der er indeholdt i et givet ark (hvis argumentet form mangler)

- Et eksemplar af tjenesten SFDocuments.Form repræsenterer formularen, specificeret som et 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å det ark, som en streng, hvorfra formularen skal hentes.

formular: Navnet eller indekset svarer til en formular, der er lagret i det angivne ark. Hvis dette argument mangler, returnerer metoden en liste over alle navnene på alle de formularer, der er tilgængelige i arket.

### Eksempel:

I de følgende eksempler får den første linje navnene på alle formularer, der er lagret i "Ark1" og den anden linje henter objektet Form fra formularen ved navn "Formular_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 mellem 1 og 1024 til dets tilsvarende bogstav (kolonne 'A', 'B', ..., 'AMJ'). Hvis det givne kolonnenummer er uden for det tilladte område, returneres en tom streng, "".

### Syntaks:

svc.GetColumnName(columnnumber: int): str

### Parametre:

columnnumber: Kolonnenummeret som en heltalsværdi i intervallet 1 … 16384.

### Eksempel:

##### I Basic

Viser et beskedfelt med navnet på den treje kolonne, der som standard er "C".

        MsgBox oDoc.GetColumnName(3)

##### I Python

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

Det højeste tilladte antal kolonner på et Calc-ark er 16384.

## GetFormula

Hent de formler, der er gemt i det givene celleområde som en enkelt streng, et 1D- eller 2D-strengmatrix.

Navnene på Calc-funktioner brugt i de returnerede formler er udtrykt på engelsk. Besøg Wiki-siden List of Calc Functions for en komplet liste over Calc-funktioner på Engelsk. For en liste over funktionernes danske og engelske navne, se DA/Calcfunktioner

### Syntaks:

svc.GetFormula(range: str): any

### Parametre:

område: Området, som formularerne hentes fra, som en streng.

### Eksempel:

##### I Basic

Det følgende eksempel returnere en 3 x 2 matrix med formler i området "A1:B3" (3 rækker gange 2 kolonner):

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

##### I Python

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

## GetValue

Hent de værdier, der er gemt i et givet celle område som en enkelt værdi, en 1D-matrix eller en 2D-matrix. Alle værdier er enten dobbelte eller strenge.

### Syntaks:

svc.GetValue(range: str): any

### Parametre:

område: Området, hvorfra værdierne skal hentes, som en streng.

### Eksempel:

##### I Basic

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

##### I Python

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

Hvis en celle indeholder en dato, returneres tallet, der svarer til denne dato. For at konvertere nummeriske værdier til dato i Bssic-scripts, bruger du den indbyggede Basic-funktion CDate. I Python-scripter bruger du funktionen CDate fra tjenesten Basic.

## ImportFromCSVFile

Importerer indholdet af en CSV-formateret tekstfil og placerer det i en givet målcelle.

Målområdet ryddes for alt indhold og formater før indsættelse af CSV-filens indhold. Det ændrede områdes størrelse bestemmes helt af indeholdet i input-filen.

Metoden returnere en streng, der repræsenterer det ændrede celleområde.

### Syntaks:

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

### Parametre:

filnavn: Identificerer den fil, der skal åbnes. Det skal følge notationen SF_FileSystem.FileNaming .

målcelle: Den målceller, hvor de importerede data, som en streng, skal indsættes. Hvis der i stedet er angivet et område, tages der kun hensyn til dets øverste, venstre celle.

filterindstillinger: Argumentet for CSV-indsætningsfiltret. Standardfiltret gør følgende antagelser.

- Filens input-tegnsætning er UTF-8.

- Felt-skilletegnet et komma, et semikolon eller et tabulatortegn.

- Streng-skilletegnet er det dobbelte anførselstegn (").

- Alle linjer medtages.

- Strenge med anførselstegn er formateret som tekst.

- Specialtal detekteres.

- Alle kolonner antages at være tekster, undtagen hvis de genkendes som gyldige tal.

- Sproget er Engelsk/US, hvilket indebærer, at decimaltegnet er "." og tusindtalsskilletegnet er ",".

### Eksempel:

##### I Basic

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

##### I Python

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

Se mere om CSV Filter-indstillingerne på hjælpesiden CSV Filter-indstillinger.

## ImportFromDatabase

Importerer indholdet af en databasetabel, -forespørgsel eller resultatsæt, det vil side resultatet af en SELECT SQL-kommando, ved at indsætte det i en målcelle.

Målområdet ryddes for alt indhold og formater før indsættelse af det importerede indhold. Det ændrede areals størrelse bestemmes helt af indholdet i tabellen eller forespørgslen.

Metoden returnerer True, når importen lykkedes.

### Syntaks:

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

### Parametre:

filnavn: Identificerer den fil, der skal åbnes. Den skal følge notationen SF_FileSystem.FileNaming.

registreringsnavn: Navnet, der bruges for at finde databasen i databaseregistret. Dette argument ignoreres, hvis der er opgivet et filename.

målcelle: målet for de importerede data, som en streng. Hvis der opgivet et område, tages der kun hensyn til den øverste, venstre celle.

sql-kommando: Et tabel- eller et forespørgselsnavn (uden omgivende anførselstegn eller kantede klammer) eller et SELECT SQL-udtryk, hvor tabel- og feltnavne kan være omgivet af kantede klammer eller anførseltegn for at forbedre læseligheden.

direkte_sql: Når True (sand), sendes SQL-kommandoen til database-motoren uden forhåndsanalyse. Standard-indstillingen er False (falsk). Argumentet ignoreres ved tabeller. Ved forespørgsler er den anvendte indstilling den, der var sat, da forespørgslen blev defineret.

### 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 metode indlæser alle de typografier, som hører til en eller flere typografifamilier, fra en lukket fil ind i det aktuelle dokument. Det aktuelle dokument skal være et Calc-dokument eller et Writer-dokument.

Importeres altid sammen:

- Afsnitstypografier og tegntypografier (ParagraphStyles og CharacterStyles)

- Nummereringstypografier og listetypografier (NumberingStyles og ListStyles)

Returnerer True hvis typografierne blev importeret uden fejl.

### Syntaks:

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

### Parametre:

filename (filnavn): Den fil som typografierne skal indlæses fra, i FileSystem-notation. Det bliver gået ud fra, at filen er af samme dokumenttype som det aktuelle dokument.

families (familier): En af typografifamilierne fra dokumentet, som en streng med forskel på store og små bogstaver, eller et array af sådanne strenge. Efterlad argumentet tomt for at importere alle familier.

overwrite (overskriv): Når True bliver aktuelle typografier med de samme navne overskrevet. Standard er False.

### Eksempel:

##### I Basic

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

##### I Python

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

## InsertSheet

Indsætter et nyt tomt ark foran et eksisterende ark eller i sidst i listen over ark.

### Syntaks:

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

### Parametre:

arknavn: Navnet på det nye ark.

før_ark: Navnet navnet (streng) eller indeksnummeret (startende fra 1) på arket, som det nye ark skal indsættes foran. Argumentet er valgfrit og standard-adfærden er at indsætte arket på sidstepladsen.

### Eksempel:

Det følgende eksempel indsætter et nyt, tomt ark ved navn "ArkX" og placerer det foran "ArkY":

##### I Basic

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

##### I Python

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

## MoveRange

Flytter et angivet kilde område til et mål-celleområde. Metoden returnerer en streng, der repræsenterer det ændrede celleområde. Det ændrede områdes dimension bestemmes felt af kildeområdets størrelse.

### Syntaks:

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

### Parametre:

kilde: kildeområdet af celler, som en streng.

mål: Målcellen som en streng. Hvis der er opgivet et område, anses dets øverste, venstre celle som målet.

### 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 placerer det foran et angivet ark eller sidst på listen over ark.

### Syntaks:

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

### Parametre:

arknavn: Navnet på arket, der skal flyttes. Arknavnet skal findes, er hejses der et undtagelsesflag.

før_ark: Navnet (streng) eller indeksnummer (startende fra 1) på det ark, som det oprindelige ark skal sættes foran. Dette argument er valgfrit og standard-adfærden er at flytte arket til sidstepladsen.

### Eksempel:

Eksemplet herunder flytter det eksisterende "ArkX" og placerer det foran "ArkY":

##### I Basic

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

##### I Python

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

## Offset

Returnerer et nyt område (som en streng) forskudt med et bestemt antal rækker og kolonner fra et givet område.

Denne metode har samme adfærd som Calc's enslydende funktionenfunktionen Forskydning.

### Syntaks:

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

### Parametre:

reference: Det område, som en streng, som metoden skal bruge som reference til udføre handlingen forskydning.

rækker: Antallet af rækker, som det oprindelige område skal forskydes opad (negativ værdi) eller nedad (positiv værdi). Brug 0 (standard) til at blive i den samme række.

kolonner: Antallet af kolonner, som dwt oprindelige område skal forskydes med mod venstre (negativ værdi) eller mod højre (positiv værdi). Brug 0 (standard) for at blive i den samme kolonne.

højde: Den lodrette højde på et areal, der starter på det nye områdes placering. Udelad dette argument, når der ikke kræves en tilpasning af den lodrette højde.

bredde: Den vandrette bredde på et areal, der begynder på den nye områdes placering. Udelad dette argument, der ikke kræves en tilpasning af den vandrette bredde.

Argumenterne rows (rækker) og columns (kolonner) må ikke blive nul eller medføre negativ start-række eller -kolonne.

Argumenterne højde og bredde må ikke blive nul eller medføre et negativt antal rækker eller kolonner.

### Eksempel:

##### I Basic

        oDoc.Offset("A1", 2, 2)
        'ArkX.$C$3 (A1 flyttet to rækker og to kolonner ned)
        oDoc.Offset("A1", 2, 2, 5, 6)
        'ArkX.$C$3:$H$7 (A1 forskudt med to rækker og kolonner med en bredde på 5 rækker og 6 kolonner)

##### I Python

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

## OpenRangeSelector

Åbner en ikke-modal dialog, der kan bruges til at vælge et område i dokumentet, og returnerer en streng, der indeholder det valgte område.

Denne metode åbner den samme dialog, der bruges af LibreOffice, når der trykkes på knappen "Formindsk". For eksempel har dialogen Funktioner ▸ Målsøgning knappen "Formindsk" til højre for feltet Formelcelle.

Denne metode ændrer ikke den aktuelle markering.

### Syntaks:

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

### Parametre:

titel: Dialogens titel, som en streng.

markering: et frivilligt område, der indledningsvis markeres, når dialogen vises.

enkeltcelle: Når True (sand (standard)), tillades udelukkende markering af en enkeltcelle. Når False (falsk), tillades områdemarkering.

luk_efter_markering: Når True (sand (standard)), lukkes markeringen umiddelbart efter, at markeringen er foretaget. Når False (falsk), kan brugeren ændre markeringen så mange gange som nødvendigt og derefter manuelt lukke dialogen.

### 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 inputstrengen efter at have erstattet det mærketegn med værdierne i et givet område.

Denne metode ændrer ikke den aktuelle markering.

Denne metode kan bruges til hurtigt at udtrække angivne dele af områdenavnet, såsom arknavn eller første cellekolonne og -række, og bruge dem til at sammensætte en ny områdeadresse.

### Syntaks:

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

### Parametre:

inputstr: Den streng, der indeholder de mærker, der erstattes af de tilsvarende værdier i range (området).

område: Et RangeName (områdenavn), hvorfra værdierne bliver udtrukket. Hvis det indeholder et arknavn, skal arket eksistere.

mærketegn: Tegn, der bruges til at identificere mærker. Som standard er "%"mærketegnet. Følgende mærker accepteres:

- %S – Arknavnet, der indeholder områder, inklusive enkelt-anførselstegn om nødvendigt.

- %R1 – Rækkenummeret på områdets øverste, venstre celle.

- %C1 – Kolonnebogstavet på områdets øverste, venstre celle.

- %R2 – Rækkenummeret på områdets nederste, højre celle.

- %C2 – Kolonnebogstavet på områdets nederste, højre celle.

### Eksempel:

##### I Basic

Eksemplet herunder udtrækker hvert element af RangeName (områdenavnet) defineret i sRange (s_område) og bruger dem til sammensætte en meddelelse.

        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 (sæt_formel) for at oprette formler over flere celler. Betragt for eksempel en tabel med numeriske værdier i området "A1:E10", hvorfra formler skal oprettes til at addere værdierne i hver række og placere resultaterne i området "F1:F10":

        Dim sFormula as String, sRange as String
        sRange = "A1:E10"
        ' Bemærk brugen af 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 metoder sender det givne arks indhold til standardprinteren eller den printer, der er defineret af metoden SetPrinter (sæt_printer) i tjenesten Document (dokument).

Returnerer True (sand), hvis det lykkedes at udskrive arket.

### Syntaks:

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

### Parametre:

arknavn: Arket, der skal udskrives, standard er det aktive ark.

sider: De sider, der skal udskrives, som en streng, ligesom i brugerfladen. For eksempel: "1-4;10;15-18". Standard er alle sider.

kopier: Antallet af 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 dublerede rækker fra et angivet område. Sammenligningen der afgør, om en given række er en dublet, baseres på en delmængde af kolonner i området.

Denne metode returnerer en streng, som indeholder det resulterende område.

Fjernelsen af dublerede rækker begynder med den første række i området og bevæger sig nedad, hvilket betyder at hvis to eller flere rækker er hinandens dubletter, så beholdes kun 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 dubletter vil blive fjernet fra, som en streng.

kolonner: En matrix med kolonnenumre, som angiver hvilke kolonner der skal medtages i afgørelsen af, om en række er en dublet eller ej. Hvis dette argument efterlades tomt, bliver kun den første kolonne brugt. Elementer i denne matrix skal være i intervallet fra 1 til områdets bredde.

header: Angiver om den første række er en overskriftsrække (standard = False).

casesensitive: Angiver om streng-sammenligninger skelner mellem store og små bogstaver (standard = False).

tilstand: Angiver hvad der skal ske med dublet-rækker. Hvis tilstand = "CLEAR", så bliver dubletter blot fjernet fra arket og cellerne efterlades tomme. Hvis tilstand = "COMPACT", så bliver dubletterne fjernet og tomme rækker komprimeres (standard = "COMPACT").

### Eksempel:

##### I Basic

        ' Fjerner dublerede rækker, hvor værdien i kolonne A er dublet
        ' Bemærk at alle valgfrie argumenter brugere deres standardværdier
        oDoc.RemoveDuplicates("A1:B10")
        ' Fjerner dublerede rækker under hensyntagen til at den første række indeholder overskrifter
        ' Kolonnerne A og B bliver brugt til at afgøre, om en række er en dublet
        ' Celler med dublet-værdier efterlades 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 afk fra dokumentet.

### Syntaks:

svc.RemoveSheet(sheetname: str): bool

### Parametre:

arknavn: Navnet på det ark, der skal flyttes.

### Eksempel:

##### I Basic

        oDoc.RemoveSheet("SheetY")

##### I Python

        myDoc.RemoveSheet("SheetY")

## RenameSheet

Omdøber det givne ark og returnerer True, hvis det lykkes.

### Syntaks:

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

### Parametre:

arknavn: Navnet på det ark, der skal omdøbes.

nyt_navn: arkets nye navn. Det må ikke findes endnu.

### Eksempel:

Dette eksempel omdøber det aktive ark til "ArkY":

##### I Basic

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

##### I Python

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

## SetArray

Lagrer den givne værdi startende fra en angivet målcelle. Det opdaterede areal strækker sig fra målcellen eller fra det øverste, venstre hjørne af det givne område for at tilpasse størrelsen på input-argumentet value. Vektorerne udvides altid lodret.

Metoden returnerer en streng, der repræsensterer det ændrede område som et celleområde.

### Syntaks:

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

### Parametre:

målcelle: Cellen eller et område som en streng, hvorfra lagring af den givne værdi begynder.

værdi: En skalar, en vektor eller en matrix (i Python: en- eller to-dimensionelle lister og tupler) med de nye værdier, der skal lagres fra målcellen eller fra det øverste, venstre hjørne af området, hvis målcellen er et område. De nye værdier skal være strenge, numeriske værdier eller datoer. Andre typer vil bevirke, at de korresponderende celler tømmes.

### Eksempel:

##### I Basic

Det følgende eksempel den indbyggede funktion DimArray til at oprette et matrix og så gemme det i cellen "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 eksempel bruger RangeInit-metoden fra ScriptForge Array-tjenesten til at oprette et array med værdier som bliver gemt fra celle "A1" og nedefter.

        'Fyld første kolonne med værdier 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 at dumpe hele indholdet af etn matrix i et ark bruger du SetArray. For at dumpe indholdet af en matrix udelukkende inden for tilsigtedecelleområde bruger du SetValue.

## SetCellStyle

Anvender den angivne celletypografi på det givne område. Hele området opdates og resten af arket efterlades urørt. Hvis celletypografien ikke eksisterer, sættes et fejlflag.

Metoden returnerer en streng, der repræsenterer det ændrede areal som et celleområde.

### Syntaks:

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

### Parametre:

målområde: Den område, som typografien skal anvendes på, som en streng.

typografi: Navnet på den celletypografi, der skal anvendes.

filterformula: En Calc-formel, som skal anvendes på det givne område til at bestemme, hvilke celler der vil blive påvirket. Den angivne formel skal returnere True (sand) eller False (falsk). Hvis dette argument ikke angives, så bliver alle celler i området påvirket.

filterscope (filter-virkefelt): Bestemmer hvordan filterformula udvides til det givne område. Dette argument er obligatorisk, hvis filterformula er angivet. Følgende værdier accepteres:

- "CELL": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver celle i området range.

- "ROW": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver række i området range.

- "COLUMN": Formlen angivet i filterformula-argumentet bliver udvidet én gang for hver kolonne i området range.

### 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 dokumentationen for ClearAll-metoden for eksempler på, hvordan du bruger argumenterne filterformula og filterscope.

## SetFormula

Indsætter den givne (matrix af) form(el/ler) i det angivne område. Det ændrede areals størrelse er lig med områdets størrelse.

Metoden returnerer en streng, der repræsenterer det ændrede areal som et celleområde.

### Syntaks:

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

### Parametre:

målområde: Området, hvor formler skal indsættes, som en streng.

formel: En streng, en vektor eller en matrix af strenge med nye formler til hver celle i målområdet.

Hele området opdateres og resten af arket efterlades uændret.

Hvis den givne formel er en steng, indsættes den unikke formel gennem hele området med justering af de relevante referencer.

Hvis størrelsen af formula (formlen) er mindre end størrelsen på targetrange (målområdet), tømmes de resterende celler.

Størrelsen af formula (formlen) er størrelsen af targetrange (målområdet), kopieres formlerne kun delvis, indtil den fylder størrelsen på targetrange (målområdet).

Vektorer strækkes altid lodret, undtagen hvis targetrange (målområdet) har en højde på nøjagtig 1 række.

Calc-funktioner brugt i argumentet formula må udtrykkes med brug af deres engelske navne. Besøg Wiki-siden List of Calc functions for en komplet liste over Calc-funktioner på engelsk. For en liste over funktionernes danske og engelske navne, se DA/Calcfunktioner

### Eksempel:

##### I Basic

        oDoc.SetFormula("A1", "=A2")
        'Vandret vektor, delvis tom
        oDoc.SetFormula("A1:F1", Array("=A2", "=B2", "=C2+10"))
        'D2 indeholder formlen "=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

Gemmer en givet værdi i det angivne område. Størrelsen af det ændrede areal er lig med målområdets størrelse.

Metoden returnerer en streng, der repræsenterer det ændrede areal som et celleområde.

### Syntaks:

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

### Parametre:

målområde: Målområdet, hvor den givne værdi, skal gemmes, som en streng. The range where to store the given value, as a string.

værdi: En skalar, en vektor eller en matrix med den nye værdi til hver af områdets celler. De nye værdier skal være strenge, numeriske værdier eller datoer. Andre typer vil bevirke, at de korresponderende celler bliver tømt.

Hele området opdateres og resten af arket efterlades urørt. Hvis størrelsen af value (værdien) er mindre en størrelsen af målområdet, bliver de resterende celler tømt.

Hvis størrelsen af value (værdien) er større end targetrange (målområdet), kopieres value (værdien) kun delvis, indtil den fylder targetrange (målområdets) størrelse.

Vektorer strækkes lodret, undtagen hvis targetrange (målområdet) har en højde på nøjagtig 1 række.

### Eksempel:

##### I Basic

        oDoc.SetValue("A1", 2)
        'Under Værdi-matrixen er mindre end TargetRange (resterende celler tømmes)
        oDoc.SetValue("A1:F1", Array(1, 2, 3))
        'Under værdien og TargetRange har den samme størrelse
        oDoc.SetValue("A1:D2", SF_Array.AppendRow(Array(1, 2, 3, 4), Array(5, 6, 7, 8)))

Hvis du vil fylde en enkelt række med værdier, kan du bruge funktion Offset (forskydning). I eksemplet herunder, bør du være :opmærksom på, at arrData er en en-dimensionel matrix.

        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 givet celleområde nedad ved at indsætte tomme rækker. Den aktuelle markering påvirkes ikke.

Afhængigt af værdien af argumentet wholerow kan de indsatte rækker enten spænde over bredden af det angivne områdes eller over alle kolonner i rækken.

Denne metode returnerer en streng, der repræsenterer den nye placering af det oprindelige område.

Hvis det flyttede område overskrider arkets kanter, sker der intet.

### Syntaks:

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

### Parametre:

område: Området herover, hvis rækker skal indsættes som en streng.

wholerow: Hvis sat til False (falsk – standardværdien), vil de indsatte rækkers bredde være den samme som bredden på det angive område. Ellers spænder de indsatte rækker over alle rækker på arket.

rækker: Antallet at rækker, der skal indsættes. Standardværdien er højden på det oprindelige range (område). Antallet af rækker skal være et positivt tal.

### Eksempel:

##### I Basic

        ' Flytter området "A3:D3" en række ned; påvirker kun kolonnerne A til D
        oDoc.ShiftDown("A3:D3")
        ' Den indsatte række spænder over alle arkets kolonner
        oDoc.ShiftDown("A3:D3", WholeRow := True)
        ' Flytter området "A3:D3" fem rækker ned
        oDoc.ShiftDown("A3:D3", Rows := 5)
        ' Flytter området "A3:D10" to rækker ned og viser det oprindelige områdes nye placering
        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 kolonnen yderst til venstre i et givet område og flytter alle celler til venstre for det påvirkede område til højre for det. Den aktuelle markering påvirkes ikke.

Afhængigt af værdien af argumentet wholecolumn kan de slettede kolonner enten spænde over det angivne områdes højde eller alle rækker i kolonnen.

Denne metode returnerer en streng, der repræsenterer den resterende del af det oprindelige område. Hvis alle celler i det oprindelige område er slettet, returneres en tom streng.

### Syntaks:

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

### Parametre:

område: Det område, hvorfra celler skal slettes, som en streng.

wholecolumn: Hvis sat til False (falsk – standardværdien), vil højden på de slettede kolonner være den samme som højden på det angivne range (område). Ellers vid de slettede kolonner spæde over alle rækker i arket.

kolonner: Antallet af kolonner, der skal slettes fra det angivne range (område). Standardværdien er bredden på det oprindelige range (område), som også er dette arguments maksimalværdi.

### Eksempel:

##### I Basic

        ' Sletter området "B3:B6"; flytter alle celler til venstre mod højre
        oDoc.ShiftLeft("B3:B6")
        ' Sletter den første kolonne i området "A3:D6"
        oDoc.ShiftLeft("A3:D6", Columns := 1)
        ' De slettede kolonner (A til D) spænder over alle rækker på 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 rækker af et givet område og flytter alle celler under det påvirkede område opad. Den aktuelle markering påvirkes ikke.

Afhængigt af værdien af argumentet wholerow kan de slettede rækker spænde over enten bredden på det angivne område eller over alle kolonner i rækken.

Denne metode returnerer en streng, der repræsenterer placeringen af den resterende del af det oprindelige område. Hvis alle celler i det oprindelige område er slettet, returneres en tom streng.

### Syntaks:

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

### Parametre:

område: Det område, som celler bliver slettet fra, som en streng.

wholerow: hvis sat til False (falsk – standardværdien), bliver bredden af de slettede rækker den samme som det angivne range (område). Ellers spænder den slettede rækker over alle rækker på arket.

rækker: Antallet af rækker, som skal slettes fra det angivne range (område). Standardværdien er højde på det oprindelige range (område), som også er dette arguments maksimumsværdi.

### Eksempel:

##### I Basic

        ' Sletter området "A3:D3"; flytter alle celler herunder en række op
        oDoc.ShiftUp("A3:D3")
        ' Sletter den første række i området "A3:D6"
        oDoc.ShiftUp("A3:D6", Rows := 1)
        ' Den slettede række spænder over alle kolonner på 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 det givne celleområde til højre ved at indsætte tomme kolonner. Den aktuelle markering er ikke påvirket.

Afhængigt af værdien af argumentet wholecolumn kan de indsatte kolonner spænde over enten højden på det angivne område eller over alle rækker i kolonnen.

Denne metode returnerer en streng, der repræsenterer det oprindelige områdes nye placering.

Hvis det flyttede område overskriver arkets kanter, sker der intet.

### Syntaks:

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

### Parametre:

område: Det område, som får tomme kolonne indsat på sin venstre side, som en streng.

wholecolumn: Hvis sat til False (falsk – standardværdien), vil højden på de indsatte kolonner være den samme som højden på det angivne range (område). Ellers spænder de indsatte kolonner over alle rækker på arket.

Kolonner: Antallet af kolonner, der skal indsættes. Standardværdien er bredden på det oprindelige range (område).

### Eksempel:

##### I Basic

        ' Flytter området "A3:A6" en kolonne til højre; på virker kun rækkerne 3 til 6
        oDoc.ShiftRight("A3:A6")
        ' Flytter området "A3:A6" fem kolonner til højre
        oDoc.ShiftRight("A3:A6", Columns := 5)
        ' Den indsatte kolonne spænder over alle rækker på 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

Sortér det angivne område ud fra en eller flere kolonner/rækker. Sorteringsrækkefølgen kan variere mellem kolonner/rækker. Hvis antallet af sorteringsnøgler er større end 3, så bliver områderet sorteret flere gange i grupper af 3 nøgler, begyndende med den sidste nøgle. Der returneres en streng, som repræsenterer det ændrede celleområde. Størrelsen af det ændrede områder er bestemt af størrelsen af 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: Det område, der skal sorteres, so, en streng.

sortkeys: En enkeltværdi (hvis 1 kolonne/række) eller et array af kolonne/række-numre begyndende fra 1.

sortorder: Et enkeltværdi eller et array af strenge med værdierne "ASC" (ascending = stigende), "DESC" (descending = faldende). Hvert element kobles sammen med det tilsvarende element i sortkeys. Hvis sortorder-arrayet er kortere end sortkeys, så bliver de restrende nøgler sorteret i stigende orden.

målcelle: Det sorterede områdes målcelle, som en streng. Hvis der er opgivet et område, tages der kun hensyn til dets øverste, venstre hjørne. Som standard overskrives kildeområdet.

indeholder_overskrift: Når True (sand), sorteres den første række/kolonne ikke.

casesensitive (forskel på store og små bogstaver): Kun ved strengsammenligninger. Standard = False (falsk)

sorter_kolonner: Når True (sand), sorteres kolonnerne fra venstre mod højre. Standard =False : rækker sorteres fra top til bund.

### Eksempel:

##### I Basic

        'Sorteringsrækkefølge A (stigende) og C (faldende)
        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 Basic-rutiner eller identifikatorer, der indledes med et understregstegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.

Relaterede emner

tjenesten SFDocuments.Chart

Tjenesten SFDocuments.Document

Tjenesten ScriptForge.UI (brugerflade)