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 til tjenesten Document (dokument) kan også tilgås med tjenesteforekomsten Calc.

Tjenesten Calc er fokuseret på:

note

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:

note

‚ÄĘ Basic macros require to load ScriptForge library using the following statement:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

‚ÄĘ Python scripts require an import from scriptforge module:
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 tjenesten Calc med metoden CreateScriptService:


    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 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()
  
tip

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:

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 forekomst 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.

The sheet name is optional when defining a range. If no sheet name is provided, then the active sheet is used. Surrounding single quotes and $ signs are allowed but ignored.

When specifying a SheetName as a string, the use of single quotes to enclose the sheet name are required if the name contains blank spaces " " or periods ".".

The examples below illustrate in which cases the use of single quotes is mandatory:


      ' The use of single quotes is optional
      oDoc.clearAll("SheetA.A1:B10")
      oDoc.clearAll("'SheetA'.A1:B10")
      ' The use of single quotes is required
      oDoc.clearAll("'Sheet.A'.A1:B10")
    
tip

Udover egenskaben CurrentSelection tager tjenesten Calc kun hensyn til enkeltområder af celler.


Eksempler på gyldige områder

1) $'SheetX'.D2
2) $D$2

En enkelt celle

1) $'SheetX'.D2:F6
2) D2:D10

Enkelt område med flere celler

$'SheetX'.*

Alle anvendte celler på et givet ark

1) $'SheetX'.A:A (column A)
2) 3:5 (rows 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-forekomsten 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

OmrådeNavn som 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

OmrådeNavn som 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 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

Områdenavn som streng

String

Returnerer arknavnet på en given områdeadresse.

Sheets

Ja

Ingen

Matrix af strenge

Listen med navne på alle eksisterende ark.

Width

Ja

OmrådeNavn som streng

Long

Antallet af kolonner (>= 1) i det givne område.

XCellRange

Ja

OmrådeNavn som 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.


tip

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 tjensten 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
InsertSheet
MoveRange
MoveSheet
Offset

OpenRangeSelector
PrintOut
Printf
RemoveSheet
RenameSheet
SetArray
SetValue
SetCellStyle
SetFormula
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
  
tip

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:

arknavn: 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. The name of the sheet to be activated in the document. The default value is an empty string, meaning that the document window will be activated without changing the active sheet.

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")
  
tip

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 navnende på diagramobjekterne på et givet ark eller en enkelt forekomst af arket Diagram.

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.

tip

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.

Syntaks:

svc.ClearAll(range: str)

Parametre:

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

Eksempel:

I Basic

      oDoc.ClearAll("SheetX.A1:F10")
  
I Python

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

ClearFormats

Rydder formater og typografier i det givne område.

Syntaks:

svc.ClearFormats(range: str)

Parametre:

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

Eksempel:

I Basic

      oDoc.ClearFormats("SheetX.*")
  
I Python

    myDoc.ClearFormats("SheetX.*")
  

ClearValues

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

Syntaks:

svc.ClearValues(range: str)

Parametre:

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

Eksempel:

I Basic

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

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

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.

note

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.

Eksempel:

I Basic

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

    newrange = myDoc.CompactLeft("Sheet1.G1:L10")
    newrange = myDoc.CompactLeft("Sheet1.G1:L10", wholecolumn = True)
    newrange = myDoc.CompactLeft("Sheet1.G1:L10", filterformula = '=(G1="X")')
    newrange = myDoc.CompactLeft("Sheet1.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å på 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.

note

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.

Eksempel:

I Basic

    ' Delete all empty rows in the range G1:L10 from Sheet1
    newrange = oDoc.CompactUp("Sheet1.G1:L10")
    ' The example below is similar, but the entire row is deleted from the sheet
    newrange = oDoc.CompactUp("Sheet1.G1:L10", WholeRow := True)
    ' Sletter alle r√¶kker, hvor den f√łrste kolonne er m√¶rket med et "X"
    newrange = oDoc.CompactUp("Sheet1.G1:L10", FilterFormula := "=(G1=""X"")")
    ' Sletter alle rækker, hvor summen af rækkens værdier er ulige
    newrange = oDoc.CompactUp("Sheet1.G1:L10", FilterFormula := "=(MOD(SUM(G1:L1);2)=1)")
  
I Python

    newrange = myDoc.CompactUp("Sheet1.G1:L10")
    newrange = myDoc.CompactUp("Sheet1.G1:L10", wholerow = True)
    newrange = myDoc.CompactUp("Sheet1.G1:L10", filterformula = '=(G1="X")')
    newrange = myDoc.CompactUp("Sheet1.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 kopier "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")
  
tip

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

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()
  
tip

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.

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

Kopier inden for det samme dokument:


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

Kopier 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"
  
tip

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

Creates a new pivot table with the properties defined by the arguments passed to the method.

A name must be provided for the pivot table. If a pivot table with the same name already exists in the targeted sheet, it will be replaced without warning.

This method returns a string containing the range where the new pivot table was placed.

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: The user-defined name of the new pivot table.

sourcerange: The range containing the raw data, as a string. It is assumed that the first row contains the field names that are used by the pivot table.

targetcell: The top-left cell where the new pivot table will be placed. If a range is specified, only its top-left cell is considered.

datafields: It can be either a single string or an array containing strings that define field names and functions to be applied. When an array is specified, it must follow the syntax Array("FieldName[;Function]", ...).

The allowed functions are: Sum, Count, Average, Max, Min, Product, CountNums, StDev, StDevP, Var, VarP and Median. Function names must be provided in English. When all values are numerical, Sum is the default function, otherwise the default function is Count.

rowfields: A single string or an array with the field names that will be used as the pivot table rows.

columnfields: A single string or an array with the field names that will be used as the pivot table columns.

filterbutton: Determines whether a filter button will be displayed above the pivot table (Default = True).

rowtotals: Specifies if a separate column for row totals will be added to the pivot table (Default = True).

columntotals Specifies if a separate row for column totals will be added to the pivot table (Default = 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("Item", "State", "Team", "2002", "2003", "2004"), _
        Array("Books", "Michigan", "Jean", 14788, 30222, 23490), _
        Array("Candy", "Michigan", "Jean", 26388, 15641, 32849), _
        Array("Pens", "Michigan", "Jean", 16569, 32675, 25396), _
        Array("Books", "Michigan", "Volker", 21961, 21242, 29009), _
        Array("Candy", "Michigan", "Volker", 26142, 22407, 32841))
    sTable = oDoc.SetArray("A1", vData)
    sPivot = oDoc.CreatePivotTable("PT1", sTable, "H1", _
        Array("2002", "2003;count", "2004;average"), _ ' Three data fields
        "Item", _ ' A single row field
        Array("State", "Team"), False) ' Two column fields
  
I Python

    ui = CreateScriptService("UI")
    doc = ui.CreateDocument("Calc")
    vData = [["Item", "State", "Team", "2002", "2003", "2004"],
             ["Books", "Michigan", "Jean", 14788, 30222, 23490],
             ["Candy", "Michigan", "Jean", 26388, 15641, 32849],
             ["Pens", "Michigan", "Jean", 16569, 32675, 25396)],
             ["Books", "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;average"],
                                  "Item",
                                  ["State", "Team"], False)
  
tip

To learn more about Pivot Tables in LibreOffice Calc, read the Pivot Table help page.


DAvg, DCount, DMax, DMin and DSum

Anvend funktionerne Middel, Tæl, Maks, Min og Sum respektive på alle celler, der indeholder numeriske værdier i et givet område.

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")
  
note

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

Exports the specified range as an image or PDF file.

This method returns True if the destination file was successfully saved.

note

Hidden rows or columns in the specified range are not exported to the destination file.


Syntaks:

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

Parametre:

range: A sheet name or a cell range to be exported, as a string.

filename: The name of the file to be saved. It must follow the SF_FileSystem.FileNaming notation.

imagetype: Identifies the destination file type. Possible values are "jpeg", "pdf" (default) and "png".

overwrite: When set to True, the destination file may be overwritten (Default = False).

Eksempel:

I Basic

    ' Exports the entire sheet as a PDF file
    oDoc.ExportRangeToFile("SheetX", "C:\Temp\image.pdf")
    ' Exports the range as a PNG file and overwrites the destination file if it exists
    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:

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 nul-længde streng.

Syntaks:

svc.GetColumnName(columnnumber: int): str

Parametre:

kolonnenummer: Kolonnenummeret som et heltal i intervallet 1 ... 1024.

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

Det maksimale antal af kollonner tilladt i et Calc-ark er 1024.


GetFormula

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

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")
  
note

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.

Eksempel:

I Basic

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

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

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]")
  

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.

note

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.

tip

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:

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'):
        # ...
  

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 metoden RangeInit fra ScriptForge Array service til at oprette en matrix med værdier, som så gemmes fra cellen "A1" og nedad.


    '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)))
  
tip

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.


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)
  

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): str

Parametre:

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

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

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

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.

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

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.

note

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.

hel_række: Hvis sat til False (falsk - standard), 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.

hel_kolonne: Hvis sat til False (falsk - standard), 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.

hel_række: hvis sat til False (falsk - standard), 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.

note

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.

hel_kolonne: Hvis sat til False (falsk - standard), 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

Sorterer det givne omr√•de baseret p√• op til tre kolonner/r√¶kker- Sorteringsr√¶kkef√łlgen kan variere med hensyn til kolonne/r√¶kke. Den returnerer en streng, der repr√¶senterer det √¶ndrede celleomr√•de. St√łrrelsen p√• det √¶ndrede omr√•de bestemmes helt af 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: Det område, der skal sorteres, so, en streng.

sorteringsn√łgler: En skalar (hvis der et 1 kolonne/r√¶kke) eller en matrix af kolonner/r√¶kker startende fra 1. Det h√¶jeste antal n√łgler er 3.

sorteingsorden: En skalar eller en matrix af strenge, der indeholder v√¶rdierne "ASC" (stigende), "DESC" (falden) eller "" (som falder tilbage til stigende). Hvert element er parret med det tilsvarende element i sortkeys (sorteringsn√łglerne). Hvis matrixen sortorder (sorteringsorden) er kortere end sortkeys (sorteringsn√łglerne), sorteres de resterende n√łgler 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.

Stort-og-småt: 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)
  
warning

Alle ScriptForge Basic-rutiner eller identifikatorer, der er indledet med et understreget tegn "_" er reserveret til internt brug. Det er ikke meningen, at de skal bruges i Basic-makroer eller Python-scripts.


St√łt os venligst!