Tenesta SFDocuments.Calc

Det delte biblioteket SFDocuments som gjev mange metodar og eigenskapar som letter administrasjon og handsaming av LibreOffice-dokument.

Tenesta SFDocuments.Calc er ein underklasse av SFDocuments.Document -tenesta. Alle metodar og eigenskapar definerte for tenesta Document kan ogs√• n√•ast ved √• bruka ein f√łrekomst av Calc-tenesta.

Tenesta Calc er fokusert på:

note

Denne hjelpsida forklarer metodar og eigenskapar som berre gjeld for Calc-dokument.


Oppkall av tenester

F√łr du brukar tenesta Calc, m√• biblioteket ScriptForge vera lasta inn eller importert:

note

‚ÄĘ Grunnleggjande makroar krev innlasting av biblioteket ScriptForge ved hjelp av denne setninga:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

‚ÄĘ Python-skript krev import fr√• scriptforge-modulen:
from scriptforge import CreateScriptService


Tenesta Calc er i nær slekt med tenesta UI i biblioteket ScriptForge. Du finn nokre få eksempel nedanfor på korleis tenesta Calc kan kallast opp.

I Basic

Kodesnutten nedanfor lagar eit eksemplar av tenesta Calc, som svarar til det gjeldande Calc-dokumentet.


    Set oDoc = CreateScriptService("Calc")
  

Ein annan måte å laga eit eksemplar av tenesta Calc på, er å bruka tenesta UI. I det neste eksempelet vert det laga eit nytt Calc-dokument der oDoc er eit eksemplar av tenesta Calc:


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

Eller med metoden OpenDocument frå tenesta UI:


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

Det er også mogleg å starta tenesta Calc med metoden CreateScriptService:


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

I eksempelet ovanfor er ¬ęMiFil.ods¬Ľ namnet p√• eit opna dokumentvindauge. Viss dette argumentet ikkje er gjeve, vert det aktive vindauget vurdert brukt.

Det vert tilrådd å frigje ressursar etter bruk:


    Set oDoc = oDoc.Dispose()
  

Viss dokumentet vart lukka ved hjelp av metoden CloseDocument, er det ikkje n√łdvendig √• frigjera ressursar med kommandoen nemnd ovanfor.

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

Bruk av prefikset ¬ęSFDocuments.¬Ľ ved oppkall av tenesta er frivillig.


Definisjonar

Mange metodar krev eit "Ark" eller eit "Område" som argument. Enkeltceller vert rekna som eit spesialtilfelle av eit Område.

Begge kan uttrykkjast anten som ein streng eller som ein referanse (= objekt), avhengig av situasjonen:

Eksempel:

Eksempelet nedanfor kopierer data fr√• dokument A (opna skriveverna og g√łymd) 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

Anten arknamnet som ein string eller eit object laga av eigenskapen .Sheet.

Snarvegen ¬ę~¬Ľ (tilde) representerer det gjeldande arket.

RangeName

Anten ein streng som gjev eit sett med samanhengande celler som er plasserte i eit ark i gjeldande f√łrekomst, eller eit objekt laga av .Range.

Snarvegen ¬ę~¬Ľ (tilde) representerer den gjeldande markeringa eller det f√łrste omr√•det, viss det er markert fleire omr√•de.

Snarvegen ¬ę*¬Ľ (stjerne) representerer alle brukte celler.

Arknamnet er valfritt når du definerer eit område. Viss det ikkje er gjeve noko arknamn, vert det gjeldande arket brukt. Enkle hermeteikn (') og teiknet $ er tillatne men vert ignorerte.

N√•r du spesifiserer eit SheetName som ein streng, m√• du bruka enkle hermeteikn rundt arknamnet viss det inneheld tomme mellomrom ¬ę ¬Ľ eller punktum ¬ę.¬Ľ.

Eksempla nedanfor viser kva tilfelle det er obligatorisk å bruka enkle hermeteikn:


      ' Bruk av enkle hermeteikn er valfritt
      oDoc.clearAll("SheetA.A1:B10")
      oDoc.clearAll("'SheetA'.A1:B10")
      ' Bruk av enkle hermeteikn er kravd
      oDoc.clearAll("'Sheet.A'.A1:B10")
    
tip

Med unnatak av eigenskapen CurrentSelection vurderer tenesta Calc berre enkeltområde med celler.


Eksempel på gyldige område

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

Ei enkelt celle

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

Enkelt område med fleire celler

$'ArkX'.*

Alle brukte celler i det gjevne arket

1) '$ArkX'.A:A kolonne A)
2) 3:5 (radene 3 til 5)

Alle celler i samanhengande kolonnar eller rader opp til den sist brukte cella

mittOmråde

Eit omr√•de med namnet ¬ęmittOmr√•de¬Ľ p√• reknearkniv√•

1) ~eitOmråde
2) ArkX.eitOmråde

Eit områdenamn på arknivå

mittDok.Område("ArkX.D2:F6")

Eit omr√•de innanfor arket SheetX i fila knytt til myDoc Calc-f√łrekomsten

~.~ eller ~

Den gjeldande markeringa på det aktive arket


Eigenskapar

Alle eigenskapane som er generiske for alle dokument, gjeld implisitt også for Calc-dokument. Viss du vil ha meir informasjon, kan du lesa Document service Help page.

Eigenskapane som er spesielt tilgjengelege for Calc-dokument er:

Namn

Skriveverna

Argument

Returtype

Beskriving

CurrentSelection

Nei

Ingen

Streng eller ei matrise av strengar

Det merkte enkeltområdet som ein streng eller lista over merkte område som ei matrise

FirstCell

Ja

Arknamn eller områdenamn som streng

String

Returnerer den f√łrste brukte cella i eit gjeve omr√•de eller ark.

FirstColumn

Ja

Arknamn eller områdenamn som streng

Long

Returnerer kolonnenummeret lengst til venstre i eit gjeve område eller ark.

FirstRow

Ja

Arknamn eller områdenamn som streng

Long

Returnerer det √łvste radnummeret i eit gjeve omr√•de eller ark.

Height

Ja

Områdenamn som streng

Long

Talet på rader (>= 1) i det gjevne området.

LastCell

Ja

Arknamn eller områdenamn som streng

String

Returnerer den siste brukte cella i eit gjeve område eller ark.

LastColumn

Ja

Arknamn eller områdenamn som streng

Long

Den siste brukte kolonnen i eit gjeve område eller ark.

LastRow

Ja

Arknamn eller områdenamn som streng

Long

Den siste brukte rada i eit gjeve område eller ark.

Range

Ja

Områdenamn som streng

Object

Ein områdereferanse som kan brukast som argument av metodar som CopyToRange

Region

Ja

Områdenamn som streng

String

Returnerer adressa til det minste området som inneheld det gjevne området, slik at området er omgjeve av tomme celler eller arkkantar. Dette svarar til å bruka snarvegen til det gjevne området.

Sheet

Ja

Arknamn som streng

Object

Ein arkreferanse som kan brukast som argument av metodar som CopySheet.

SheetName

Ja

Områdenamn som streng

String

Returnerer tabellnamnet for eit gjeve adresseområde.

Sheets

Ja

Ingen

Matrise av strengar

Lista med namn på alle arka som finst.

Width

Ja

Områdenamn som streng

Long

Talet på kolonnar (>= 1) i det gjevne området.

XCellRange

Ja

Områdenamn som streng

Object

Eit com.sun.star.Table.XCellRange UNO-objekt.

XSheetCellCursor

Ja

Områdenamn som streng

Object

Eit com.sun.star.sheet.XSheetCellCursor UNO-objekt. Etter √• ha flytt mark√łren, kan den resulterande omr√•deadressa n√•ast gjennom mark√łrobjektet sin UNO-eigenskap AbsoluteName, som returnerer ein strengverdi som kan brukast som argument for eigenskapar og metodar for Calc-tenesta.

XSpreadsheet

Ja

Arknamn som streng

Object

Eit com.sun.star.sheet.XSpreadsheet UNO-objekt.


tip

Bes√łk nettstaden til LibreOffice API-dokumentasjonen for √• l√¶ra meir om XCellRange, XSheetCellCursor og XSpreadsheet UNO-objekter.


Metodar

Liste over metodar i tenesta 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 ei områdeadresse som ein streng basert på ark-koordinata, dvs. rad- og kolonnenummer.

Viss berre eitt koordinatpar er gjeve,vert det returnert ei adresse til ei enkelt celle. Tilleggsargument kan spesifisera cella nedst til h√łgre i eit rektangul√¶rt omr√•de.

Syntaks:

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

Parametrar:

rad1, kolonne1: Spesifiser rad- og kolonnenumeret til cella √łverst til venstre i omr√•det som skal vurderast. Rad- og kolonnenummer byrjar p√• 1.

rad2, kolonne2: Spesifiser rad- og kolonnenumret til cella nedst til h√łgre i omr√•det som skal vurderast. Viss desse argumenta ikkje er gjevne, eller viss det er gjevne verdiar som er mindre enn rad1 og kolonne1, vert adressa til enkeltcelleomr√•det representert av rad1 og kolonne1 returnert.

arknamn: Namnet p√• arket som skal leggjast til den returnerte omr√•deadressa. Arket m√• finnast. Standardverdien er ¬ę~¬Ľ, som svarar til det gjeldande arket.

Eksempel:

Eksempla nedanfor i Basic og Python g√•r ut fr√• at ¬ęArk1¬Ľ er det gjeldande arket.

I Basic

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

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

Metoden A1Style kan kombinerast med alle dei mange eigenskapane og metodane i Calc-tenesta som krev eit område som argument, for eksempel GetValue, GetFormula, ClearAll osv.


Activate

Viss argumentet sheetname er spesifisert, vert det gjevne arket aktivert og vert det gjeldande arket. Viss argumentet manglar, vert dokumentvindauget slått på.

Syntaks:

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

Parametrar:

arknamn: Namnet på det arket som skal aktiverast i dokumentet. Standardverdien er ein tom streng, noko som gjer at dokumentvindauget vert aktivert, utan at det gjeldande arket vert endra.

Eksempel:

Eksempelet nedanfor aktiverer arket med namnet ¬ęArk4¬Ľ i det gjeldande dokumentet.

I Basic

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

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

Aktivering av eit ark gjev meining berre når aktiveringa vert gjort i eit Calc-dokument. For å sikr deg at du har eit Calc-dokument tilgjengeleg, kan du bruka eigenskapen isCalc for dokumentobjektet, som returnerer Sann viss der er eit Calc-dokument og elles Usann.


Charts

Returnerer anten lista med namna p√• diagramobjekta p√• eit gjeve ark eller ein enkelt f√łrekomst av arket Chart.

Syntaks:

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

Parametrar:

sheetname: Namnet på arket som lista over diagramma skal hentast frå eller der det spesifiserte diagrammet er plassert.

chartname: Det brukardefinerte namnet på diagramobjektet som skal returnerast. Viss diagrammet ikkje har eit brukardefinert namn, kan det interne objektnamnet brukast. Viss dette argumentet manglar, vert lista over diagramnamn i det gjeldande arket returnert.

tip

Bruk sidepanelet Dokumentstruktur for å kontrollera namna som er knytt til diagram under kategorien OLE-objekt.


Eksempel:

I Basic

Eksempelet nedanfor viser kor mange diagram-objekt det er i ¬ęArk1¬Ľ.


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

Det f√łlgjande eksempelet gjev tilgang til diagrammet kalla ¬ęMyChart¬Ľ i ¬ęArk1¬Ľ og skriv ut typen.


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

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

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

ClearAll

Ryddar alt indhaldet og alle format i det gjevne området.

Syntaks:

svc.ClearAll(range: str)

Parametrar:

område: Området som skal ryddast, som ein streng.

Eksempel:

I Basic

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

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

ClearFormats

Ryddar format og stilar i det gjevne området.

Syntaks:

svc.ClearFormats(range: str)

Parametrar:

område: Det området der format og stilar skal ryddast, som ein streng.

Eksempel:

I Basic

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

    myDoc.ClearFormats("SheetX.*")
  

ClearValues

Ryddar verdiane og formlane i det gjevne området.

Syntaks:

svc.ClearValues(range: str)

Parametrar:

område: Det området der verdiane og formlane skal ryddast, som ein streng.

Eksempel:

I Basic

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

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

CompactLeft

Slettar kolonnane i eit spesifisert område som samsvarar med eit filter uttrykt som ein Calc-formel. Filteret vert brukt på kvar kolonne for å avgjera han den skal slettast eller ikkje.

Den sletta kolonnen kan avgrensast til h√łgda p√• det gjevne omr√•det eller inkludera h√łgda p√• heile arket, og slik sletta heile kolonnar.

Denne metoden returnerer ein streng med områdeadressa til det komprimerte området. Viss alle kolonnane vert sletta, vert det returnert ein tom streng.

note

Viss eit celleområde er merkt, vil eit oppkall av denne metoden ikkje påverka det merkte området.


Syntaks:

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

Parametrar:

område: Området som cellene skal slettast i, som ein streng.

wholecolumn: Viss dette valet er sett til Sann, vert heile kolonne sletta fr√• tabellen. Standard er Usann, noko som betyr at den sletta kolonnen vil vera avgrensa til h√łgda p√• det gjevne omr√•det.

filterformula: Filteret som vert brukt p√• kvar kolonne for √• bestemma om han skal slettast eller ikkje. Filteret er uttrykt som ein Calc-formel som skal brukast p√• den f√łrste kolonnen. Viss formelen for ein kolonne returnerer Sann, vert heile kolonnen sletta. Standardfilteret sletter alle tomme kolonnar.

Viss ein g√•r ut fr√• at omr√•det A1:J200 er merkt (h√łgd = 200), s√• er standardformelen =(COUNTBLANK(A1:A200)=200). Dette betyr at viss alle 200 cellene i den f√łrste kolonnen (kolonne A) er tomme, vert kolonnen sletta. Legg merke til at formelen berre er uttrykt i den f√łrste kolonnen. Internt vil metoden CompactLeft generalisere denne formelen til alle kolonnane som er igjen.

Eksempel:

I Basic

    ' Slett alle tomme kolonnar i området G1:L10 frå Ark1
    newrange = oDoc.CompactLeft("Sheet1.G1:L10")
    ' Eksemplet nedanfor liknar, men heile kolonnen vert sletta frå arket
    newrange = oDoc.CompactLeft("Sheet1.G1:L10", WholeColumn := True)
    ' Sletter alle kolonnar der den f√łrste rada er merkt med ein "X"
    newrange = oDoc.CompactLeft("Sheet1.G1:L10", FilterFormula := "=(G1=""X"")")
    ' Sletter alle kolonnar der summen av verdiane er odde
    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

Slettar kolonnane i eit spesifisert område som samsvarar med eit filter uttrykt som ein Calc-formel. Filteret vert brukt på kvar kolonne for å avgjera om han skal slettast eller ikkje.

Dei sletta radene kan avgrensast til breidda på det gjevne området eller inkludera breidda på heile arket, og slik sletta heile rader.

Denne metoden returnerer ein streng med områdeadressa til det komprimerte området. Viss alle radene vert sletta, vert det returnert ein tom streng.

note

Viss eit celleområde er merkt, vil eit oppkall av denne metoden ikkje påverka det merkte området.


Syntaks:

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

Parametrar:

range: Området som cellene skal slettast i, som ein streng.

wholerow: Viss dette valet er sett til Sann, vert heile rada sletta frå arket. Standard er Usann, noko som betyr at den sletta rada vil vera avgrensa til breidda på det gjevne området.

filterformula: Filteret som vert brukt p√• kvar rad for √• bestemma om ho skal slettast eller ikkje. Filteret er uttrykt som ein Calc-formel som skal brukast p√• den f√łrste rada. Viss formelen returnerer Sann, vert heile rada sletta. Standardfilteret slettar alle tomme rader.

Viss ein g√•r ut fr√• at omr√•det A1:J200 er merkt (breidd = 10), s√• er standardformelen =(COUNTBLANK(A1:J1)=10). Dette betyr at viss alle 10 cellene i den f√łrste rada (rad 1) er tomme, vert rada sletta. Legg merke til at formelen berre er uttrykt i den f√łrste rada. Internt vil metoden CompactUp generalisere denne formelen til alle radene som er igjen.

Eksempel:

I Basic

    ' Slett alle tomme rader i området G1:L10 frå Ark1
    newrange = oDoc.CompactUp("Sheet1.G1:L10")
    ' Eksemplet nedanfor liknar, men heile rada vert sletta frå arket
    newrange = oDoc.CompactUp("Sheet1.G1:L10", WholeRow := True)
    ' Sletter alle rader der den f√łrste kolonnen er merkt med ein "X"
    newrange = oDoc.CompactUp("Sheet1.G1:L10", FilterFormula := "=(G1=""X"")")
    ' Sletter alle rader der summen av verdiane er odde
    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 eit bestemt ark f√łr eit eit ark som finst fr√• f√łr eller i slutten av lista over ark. Det arket som skal kopierast, kan vera inne i kva ope Calc-dokument som helst. Returnerer Sann viss vellukka.

Syntaks:

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

Parametrar:

Arknamn: Namnet på arket som skal kopierast, som ein streng eller ein referanse til det som eit objekt.

nyttnamn: Namnet på arket sol skal setjast inn. Namnet må ikkje vera i bruk andre stader i dokumentet.

beforesheet: Namnet (streng) eller indeksnummeret (tal, byrjar fr√• 1) p√• arket framf√łre som det kopierte arket skal setjast inn i. Dette argumentet er valfritt. Standar er at det kopierte arket vert sett inn sist i arket.

Eksempel:

I Basic

Dette eksempelet lagar ein kopi av arket ¬ęArkX¬Ľ og plasserer det som det siste arket i det gjeldande dokumentet. Namnet p√• det kopierte arket er ¬ęArkY¬Ľ.


    Dim oDoc as Object
    ' Hentar dokumentobjektet frå det aktive vindauget
    Set oDoc = CreateScriptService("Calc")
    oDoc.CopySheet("SheetX", "SheetY")
  

Eksemplet nedanfor kopierer ¬ęArkX¬Ľ fr√• ¬ęFilA.ods¬Ľ og limer det inn ved siste plassering av ¬ęFilB.ods¬Ľ med namnet ¬ę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

Viss du vil kopiera ark mellom opne dokument, brukar du CopySheet. For å kopiera ark frå dokument som er lukka, brukar du CopySheetFromFile.


CopySheetFromFile

Kopierer eit bestemt ark fr√• eit lukka Calc-dokument og limer det inn framf√łre eit ark som finst fr√• f√łr, eller p√• slutten av lista over ark i fila referert til av eit Document-objekt.

Viss fila ikkje finst, vert det sett opp ein feil. Viss fila ikkje er ei gyldig Calc-fil, vert det sett inn eit tomt ark.Viss kjeldearket ikkje finst i inndatafila, vert det sett inn ei feilmelding √łvst i det nyleg innlimte arket.

Syntaks:

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

Parametrar:

filnamn: Identifiserer fila som skal opnast. Namnet m√• f√łlgja SF_FileSystem.FileNaming-notasjonen. Fila m√• ikkje vera verna med passord.

arknamn: Namnet på arket som skal kopierast som ein streng.

nyttnamn: Namnet på arket som skal setjast inn i dokumentet. Namnet må ikkje vera i bruk andre stader i dokumentet.

beforesheet: Namnet (streng) eller indeksnummeret (tal, byrjar fr√• 1) p√• arket framf√łre som det kopierte arket skal setjast inn i. Dette argumentet er valfritt. Standar er at det kopierte arket vert sett inn sist i arket.

Eksempel:

Det neste eksempelet kopierer ¬ęArkX¬Ľ fr√• ¬ęmiFil.ods¬Ľ og set det inn som ¬ęArkY¬Ľ f√łrst i det dokumentet som er referert til som ¬ęoDoc¬Ľ.

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 eit gjeve kjeldeområde (verdiar, formlar og format) til eit målområde eller ei bestemt celle. Metoden reproduserer verkemåten til ein Kopier/lim inn-operasjon frå eit område til ei enkelt celle.

Den returnerer ein streng som representerer det endra celleområdet. Storleiken på det modifiserte området vert fullt ut bestemt av storleiken på kjeldeområdet.

Kjeldeomr√•det kan h√łyra til eit anna opna dokument.

Syntaks:

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

Parametrar:

kjeldeomr√•de: Kjeldeomr√•det som ein streng n√•r det h√łyrer til same dokumentet, eller som ein referanse n√•r det h√łyrer til eit anna ope Calc-dokument.

m√•lcelle: M√•lcella der det kopierte celleomr√•det skal limast inn, som ein streng. Viss det er gjeve eit omr√•de, vert det berre teke omsyn til den √łvre, venstre cella i omr√•det.

Eksempel:

I Basic

I neste eksempel er kjelda og målet i same fila:


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

Eksempelet nedanfor viser korleis du kan kopiera eit område frå eit anna, ope Calc-dokument:


    Dim ui as Variant : ui = CreateScriptService("UI")
    Dim oDocSource As Object, oDocDestination As Object
    ' Opna kjeldedokument i bakgrunnen (g√łymd)
    Set oDocSource = ui.OpenDocument("C:\SourceFile.ods", Hidden := True, ReadOnly := True)
    Set oDocDestination = CreateScriptService("Calc")
    oDocDestination.CopyToCell(oDocSource.Range("Sheet1.C2:C4"), "SheetT.A5")
    ' Ikkje gl√łym √• lukka kjeldedokumentet fordi det vart opna som g√łymd
    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 √• simulera ¬ęKopier/Lim inn¬Ľ fr√• eit omr√•de til eienkelt celle, brukar du CopyToCell. For √• simulera ¬ęKopier/Lim inn¬Ľ fr√• eit omr√•de til eit st√łrre omr√•de (med dei same cellene kopierte fleire gongar) brukar du CopyToRange.


CopyToRange

Kopierer eit gjeve kjeldeomr√•de nedover og/eller mot h√łgre (verdiar, formlar og format) til eit m√•lomr√•de. Metoden imiterer verkem√•ten til ein ¬ęKopier/Lim inn¬Ľ-operasjon fr√• eit kjeldeomr√•de til eit st√łrre m√•lomr√•de.

Metoden returnerer ein streng som representerer det endra celleområdet.

Kjeldeomr√•det kan h√łyra til eit anna opna dokument.

Syntaks:

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

Parametrar:

kjeldeomr√•de: Kjeldeomr√•det som ein streng n√•r det h√łyrer til same dokumentet, eller som ein referanse n√•r det h√łyrer til eit anna ope Calc-dokument.

målområde: Målet for det kopierte celleområdet som ein streng.

Eksempel:

I Basic

Kopiera innf√łre det same dokumentet:


    oDoc.CopyToRange("SheetX.A1:F10", "SheetY.C5:J5")
    ' Returnerer ein omr√•destreng: ¬ę$ArkY.$C$5:$J$14¬Ľ
  

Kopiera frå éi fil til ei anna:


    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

Lagar eit nytt diagram-objekt som viser dataa i det gjevne område. Det diagramobjektet som vert returnert, kan handsamast vidare med tenesta Chart.

Syntaks:

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

Parametrar:

chartname: Det brukardefinerte namnet på diagrammet som skal lagast. Namnet må vera unikt i det same arket.

sheetname: Namnet på arket der diagrammet skal setjast inn.

range: Området som skal brukast som datakjelde for diagrammet. Området kan referera til kva ark som helst ark i Calc-dokumentet.

columnheader N√•r Sann, vert den √łvste rada i omr√•det brukt som etikettar for kategoriaksen eller forklaringa (standard = Usann).

rowheader Når Sann, vert kolonnen til venstre i området brukt som etikettar for kategoriaksen eller forklaringa (standard = Usann).

Eksempel:

Eksempla nedanfor i Basic og Python lagar eit diagram ved √• bruka dataa i omr√•det ¬ęA1:B5¬Ľ til ¬ęArk1¬Ľ og set diagrammet inn i ¬ęArk2¬Ľ.

I Basic

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

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

Sjå hjelpsida om Chart service i ScriptForge for å læra meir korleis du kan handsama diagramobjekt vidare. Det er råd å endra eigenskapar som diagramtype, diagram- og aksetitlar og diagramposisjon.


CreatePivotTable

Lagar ein ny pivottabell med eigenskapane definert av argumenta som vert sende til metoden.

Det m√• setjast eit namn for pivottabellen. Viss det finst ein pivottabell med det same namnet fr√• f√łr i m√•ltabellen, vert denne erstatta utan varsel.

Denne metoden returnerer ein streng som inneheld området der den nye pivottabellen vart plassert.

Syntaks:

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

Parametrar:

pivottablename: Det brukardefinerte namnet på den nye pivottabellen.

sourcerange: Omr√•det som inneheld r√•dataa, som ein streng. Ein g√•r ut fr√• at den f√łrste rada inneheld feltnamna som vert brukte av pivottabellen.

targetcell: Cella √łvst til venstre der den nye pivottabellen er plassert. Viss det er spesifisert eit omr√•de, vert berre cella √łvst til venstre vurdert.

datafields: Dette kan anten vera ein enkelt streng eller ei matrise med strengar som definerer feltnamn og funksjonar som skal brukast. Viss det er spesifisert ei matrise, m√• ho f√łlgja syntaksen Array("FieldName[; Funksjon]" ‚Ķ) .

Dei tillatne funksjonane er: Sum, Count, Average, Max, Min, Product, CountNums, StDev, StDevP, Var, VarP og Median. Funksjonsnamna må vera på engelsk. Når alle verdiar er numeriske, er Sum standardfunksjonen, elles er standardfunksjonen Count.

rowfields: Ein enkelt streng eller ei matrise som inneheld feltnamna som vert brukte som pivottabellrader.

columnfields: Ein enkelt streng eller ei matrise som inneheld feltnamna som vert brukte som pivottabellkolonnar.

filterbutton: Bestemmer om ein filterknapp vert vist over pivottabellen (standard = Sann).

rowtotals: Spesifiserer om det skal leggjast til ein eigen kolonne for totalsummar for rader i pivottabellen (standard = Sann).

columntotals: Spesifiserer om det skal leggjast til ein eigen kolonne for totalsummar for rader i pivottabellen (standard = Sann).

Eksempel:

I Basic

    Dim vData As Variant, oDoc As Object, ui As Object, sTable As String, sPivot As String
    Set ui = CreateScriptService("UI")
    Set oDoc = ui.CreateDocument("Calc")
    vData = 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"), _ ' Tre datafelt
        "Item", _ ' Eitt enkelt radfelt
        Array("State", "Team"), False) ' To kolonnefelt
  
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

Du kan læra meir om pivottabellar i LibreOffice Calc i hjelpsida Pivot Table.


DAvg, DCount, DMax, DMin and DSum

Bruk funksjonane Gjennomsnitt, Tal på, Maks, Min og Summer respektive på alle cellene som inneheld talverdiar i eit gjeve 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

Parametrar:

område: Området som funksjonen skal brukast på, som ein streng.

Eksempel:

Eksempelet nedanfor brukar funktsjnen Sum p√• omr√•det ¬ęA1:A1000¬Ľ i det gjeldande arket.

I Basic

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

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

I det gjevne området vert celler som inneheld tekst ignorerte av alle funksjonane. For eksempel vil metoden DCount ikkje telja celler med tekst, berre celler med tal.


ExportRangeToFile

Eksporterer det gjevne området som eit bilete eller ei PDF-fil.

Denne metoden returnerer Sann viss målfila vart lagra.

note

G√łymde rader eller kolonnar i det gjevne omr√•det vert ikkje eksporterte til m√•lfila.


Syntaks:

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

Parametrar:

range: Eit arknamn eller eit celleområde som skal eksporterast som ein streng.

filename: Namnet p√• fila som skal lagrast. Namnet m√• f√łlgja notasjonen SF_FileSystem.FileNaming .

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

overwrite: Viss Sann kan målfila overskrivast (standard = Usann).

Eksempel:

I Basic

    ' Eksporterer heile arket som ei PDF-fil.
    oDoc.ExportRangeToFile("SheetX", "C:\Temp\image.pdf")
    ' Eksporterer omr√•det som ei PNG-fil og overskriv m√•lfila viss denne finst fr√• f√łr.
    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

Avhengig av kva parameterar som er gjevne, vil denne metoden returnere:

Syntaks:

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

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

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

Parametrar:

arknamn: Namnet på arket (som ein streng) som skjemaet skal hentast frå.

skjema: Namnet eller indeksnummeret på skjemaet som er lagra i det gjevne arket. Viss dette argument manglar, vil metoden returnera ei liste med namna på alle skjemaa som er tilgjengelege i arket.

Eksempel:

I dei neste eksempla f√•r den f√łrste linja namna p√• alle skjemaa som er lagra i ¬ęArk1¬Ľ og den anden linje hentar objektet Form fr√• skjemaet med namnet ¬ęSkjema_A¬Ľ, som er lagra 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 eit kolonnenummerområde mellom 1 og 1024 til dei tilsvarande bokstavane (kolonne 'A', 'B', …, 'AMJ'). Viss det gjevne kolonnenummeret er utanfor det tillate området, vert det returnert ein null-lengde streng.

Syntaks:

svc.GetColumnName(columnnumber: int): str

Parametrar:

kolonnenummer: Kolonnenummeret som eit heiltal i intervallet 1 … 1024.

Eksempel:

I Basic

Viser eit meldingsfelt med namnet p√• den tredje kolonnen, standard er ¬ęC¬Ľ.


    MsgBox oDoc.GetColumnName(3)
  
I Python

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

Det h√łgste talet p√• kolonnar tillatne i eit Calc-ark er 1024.


GetFormula

Hentar formelen eller fomlane som er lagra i det gjevne celleområdet som ein enkel streng, ei 1D- eller 2D-matrise.

Syntaks:

svc.GetFormula(range: str): any

Parametrar:

område: Området som formlane vert henta frå, som ein streng.

Eksempel:

I Basic

Det neste eksempelet returnere ei 3 √ó 2 matrise med formlar i omr√•det ¬ęA1:B3¬Ľ (3 rader gonge 2 kolonnar):


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

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

GetValue

Hent verdien/verdiane som er lagra i det gjevne celleområdet, som éin enkelt verdi, ei 1D-matrise eller ei 2D-matrise. Alle verdiar er anten doble eller strengar.

Syntaks:

svc.GetValue(range: str): any

Parametrar:

område: Området som verdiane vert henta frå, som ein streng.

Eksempel:

I Basic

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

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

Viss ei celle inneheld ein dato, vert talet som svarar til denne datoen returnert. For å konvertera tal til datoar i Basic-skript, bruk den innebygde Basic-funksjonen CDate. IPython, bruk funksjonen CDate frå tenesta Basic.


ImportFromCSVFile

Importerer innhaldet av ei CSV-formatert tekstfil og set det inn i ei gjeve målcelle.

Alt innhald og alle format i m√•lomr√•det vert fjerna f√łr innhaldet i CSV-fila vert sett inn. Storleiken p√• det endra omr√•det vert bestemt fullt og heilt av innhaldet i inndatafila.

Metoden returnerer ein streng som representerer det endra celleområdet.

Syntaks:

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

Parametrar:

filnamn: Identifiserer fila som skal opnast. Namnet m√• f√łlgja notasjonen SF_FileSystem.FileNaming .

m√•lcelle: M√•lcella som dei importerte dataa skal setjast inn i, som ein streng. Viss det er gjeve eit omr√•de, vert det berre teke omsyn til den √łvre, venstre cella.

filterindstillingar: Argumentet for CSV-inndatafilteret. Standardfilteret gjer desse antakingane:

Eksempel:

I Basic

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

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

For å læra meir om CSV-filteralternativa, sjå hjelpesida for CSV-filteralternativ.


ImportFromDatabase

Importerer innhaldet i ein databasetabell, ei sp√łrjing eller eit resultatsett, dvs. resultatet av ein SELECT SQL-kommando ved √• setja det inn i ei m√•lcelle.

Alt innhald og alle format i m√•lomr√•det vert fjerna f√łr det importerte innhaldet vert sett inn. Storleiken p√• det endra omr√•det vert bestemt fullt og heilt av innhaldet i matrisa eller sp√łrjinga.

Metoden returnerer Sann når han lukkast.

Syntaks:

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

Parametrar:

filnamn: Identifiserer fila som skal opnast. Namnet m√• f√łlgja notasjonen SF_FileSystem.FileNaming .

registreringsnamn: Namnet som vert brukt for å finna databasen i databaseregisteret. Dette argument vert ignorert viss det er gjeve eit filnamn.

m√•lcelle: M√•let for dei importerte dataa, som ein streng. Viss det er gjeve eit omr√•de, vert det berre teke omsyn til den √łverste, venstre cella.

sql-kommando: Ein tabell- eller eit sp√łrjingsnamn (utan hermeteikn eller klammeparentesar) eller eit SELECT SQL-uttrykk der tabell- og feltnamna kan innehalda hermeteikn eller klammeparentesar for √• gjera uttrykket enklare √• lesa.

direkte_sql: N√•r denne er Sann, vert SQL-kommandoen sendt til databasemotoren utan f√łrehandsanalyse. Standard er Usann. Argumentet vert ignorert for tabellar. For sp√łrjingar er det brukte alternativet det som vart sett d√• sp√łrjinga vart definert.

Eksempel:

I Basic

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

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

InsertSheet

Set inn eit nytt tomt ark framf√łre eit ark som finst fr√• f√łr eller sist i lista over ark.

Syntaks:

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

Parametrar:

arknamn: Namnet på det nye arket.

beforesheet: Namnet (streng) eller indeksnummeret (tal, byrjar fr√• 1) p√• arket framf√łre som det nye arket skal setjast inn i. Dette argumentet er valfritt. Standar er at det kopierte arket vert sett inn sist i arket.

Eksempel:

Det neste eksempelet set inn eit nytt, tomt ark med namnet ¬ęArkX¬Ľ framf√łre ¬ęArkY¬Ľ:

I Basic

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

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

MoveRange

Flytter eit gjeve kjeldeområde til eit målområde med celler. Metoden returnerer ein streng som representerer celleområdet som er endra. Dimensjonen på det endra området vert bestemt fullt ut av storleiken på kjeldeområdet.

Syntaks:

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

Parametrar:

kjelde: kjeldeområdet av celler, som ein streng.

m√•l: M√•lcella som ein streng. Viss det er gjeve eit omr√•de, vert cella √łvst til venstre i omr√•det rekna som m√•let.

Eksempel:

I Basic

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

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

MoveSheet

Flyttar eit eksisterande ark og plasserer det framf√łre eit spesifisert ark eller p√• slutten av lista over ark.

Syntaks:

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

Parametrar:

arknamn: Namnet på arket som skal flyttast. Arknamnet må finnast elles vert det sett eit unntak.

beforesheet: Namnet (streng) eller indeksnummeret (tal, byrjar fr√• 1) p√• arket framf√łre som det opphavlege arket skal setjast inn i. Dette argumentet er valfritt. Standar er at det kopierte arket vert sett inn sist i arket.

Eksempel:

Eksempelet nedanfor flytter det eksisterande ¬ęArkX¬Ľ og set det framf√łre ¬ęArkY¬Ľ:

I Basic

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

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

Offset

Returnerer eit nytt område (som ein streng) forskyvt med eit bestemt tal på rader og kolonnar frå eit gjeve område.

Denne funksjonen gjer det same som den einslydande funksjonen Forskyv i Calc.

Syntaks:

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

Parametrar:

referanse: Omr√•det, som ein streng, som metoden vil bruka som referanse til √• utf√łra forskyvingsoperasjonen.

rader: Kor mange rader som det opphavlege området skal forskyvast oppover (negativ verdi) eller nedover (positiv verdi). Bruk 0 (standard) for å forbli i same rada.

kolonnar: Kor mange kolonnar som det opphavlege omr√•det skal forskyvast mot venstre (negativ verdi) eller mot h√łgre (positiv verdi). Bruk 0 (standard) for √• forbli i same kolonnen.

h√łgd: Den loddrette h√łgda for eit omr√•de som byrjar ved den nye omr√•deposisjonen. Utelat dette argumentet n√•r det ikkje er behov for loddrett endring av storleiken.

breidde: Den vassrette breidd for eit område som byrjar ved den nye områdeposisjonen. Utelat dette argumentet når det ikkje er behov for vassrett endring av storleiken.

Argumenta rader og kolonnar kan ikkje resultera i null eller negativ startrad eller startkolonne.

Argumenta h√łgd og breidd kan ikkje resultera i null eller eit negativt tal p√• rader eller kolonnar.

Eksempel:

I Basic

    oDoc.Offset("A1", 2, 2)
    ' ArkX.$C$3 (A1 flytt to rader og to kolonnar ned)
    oDoc.Offset("A1", 2, 2, 5, 6)
    ' ArkX.$C$3:$H$7 (A1 forskj√łve med to rader og kolonnar med ei breidd p√• 5 rader og 6 kolonnar)
  
I Python

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

OpenRangeSelector

Opnar eit ikkje-modalt dialogvindauge som kan brukast for å merkja eit område i dokumentet og returnerer ein streng som inneheld det merkte området.

note

Denne metode opnar det same dialogvindauget som vert brukt av LibreOffice n√•r knappen ¬ęForminsk¬Ľ vert brukt. For eksempel har dialogvindauget Verkt√ły ‚Üí Tilpass verdi knappen ¬ęForminsk¬Ľ til h√łgre for feltet Formelcelle.


Denne metoden endrar ikkje det gjeldande utvalet.

Syntaks:

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

Parametrar:

title: Tittelen på dialogvindauget, som ein streng.

selection: Eit valfritt omr√•de som vert merkt f√łrst n√•r dialogvindauget vert vist.

singlecell: Når Sann (standard), kan berre enkeltceller merkjast. Når Usann kan område merkjast.

closeafterselect: N√•r Sann (standard) vert dialogvindauget lukka like etter at ei markering er utf√łrt. N√•r Usann, kan brukaren endra valet s√• mange gongar som √łnskjeleg og deretter lukka vindauget manuelt.

Eksempel:

I Basic

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

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

Printf

Returnerer inndatastrengen etter å ha byt ut symbol-teikna med verdiane deira i eit gjeve område.

Denne metoden endrar ikkje det gjeldande utvalet.

tip

Denne metoden kan brukast for raskt √• trekkja ut bestemte delar av eit omr√•denamn, for eksempel namnet p√• arket eller den f√łrste cellekolonnen og -rada, og bruka dei til √• laga ei ny omr√•deadresse.


Syntaks:

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

Parametrar:

inputstr: Strengen som inneheld symbola som vert byt ut med dei tilsvarande verdiane i range.

range: Eit RangeName som verdiane vert henta ut frå. Viss denne inneheld eit arknamn, må arket finnast.

tokencharacter: Teikn som vert brukte for √• identifisera symbol. Som standard er symbolteiknet ¬ę%¬Ľ. Desse teikna vert aksepterte:

Eksempel:

I Basic

Eksempelet nedanfor trekk ut kvart element av RangeName definert i sRange og brukar dei for å setja opp ei melding.


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

Metoden Printf kan kombinerast med SetFormula for √• laga formlar over fleire celler. Sj√• for eksempel p√• ein tabell med talverdiar i omr√•det ¬ęA1:E10¬Ľ som det skal lagast formlar fr√• for √• summera verdiane i kvar rad og setja resultata i omr√•det ¬ęF1:F10¬Ľ:


    Dim sFormula as String, sRange as String
    sRange = "A1:E10"
    ' Legg merkje til bruken av teiknet ¬ę$¬Ľ
    sFormula = "=SUM($%C1%R1:$%C2%R1)"
    oDoc.SetFormula("F1:F10", oDoc.Printf(sFormula, sRange))
  
I Python

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

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

PrintOut

Denne metoden sender innhaldet i det gjevne arket til standardskrivaren eller til den skrivaren som er definert av metoden SetPrinter i tenesta Document.

Returnerer Sann viss dokumentet vart skrive ut.

Syntaks:

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

Parametrar:

arknamn: Arket som skal skrivast ut. Standard der det gjeldande arket.

sider: Sidene som skal skrivast ut som ein streng, som i brukargrensesnittet. Eksempel: ¬ę1-4;10;15-18¬Ľ. Standard er alle sidene.

kopiar: Talet på kopiar. 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

Fjernar eit ark frå dokumentet.

Syntaks:

svc.RemoveSheet(sheetname: str): bool

Parametrar:

arknamn: Namnet på arket som skal fjernast.

Eksempel:

I Basic

    oDoc.RemoveSheet("SheetY")
  
I Python

    myDoc.RemoveSheet("SheetY")
  

RenameSheet

Gjev det gjevne arket eit nytt namn og returnerer Sann viss dette lukkast.

Syntaks:

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

Parametrar:

arknamn: Namnet på arket som skal gjevast nytt namn.

nyttnamn: Det nye arknamnet. Namnet m√• ikkje finnast fr√• f√łr.

Eksempel:

I dette eksempelet endrar du namnet p√• det aktive arket til ¬ęArkY¬Ľ:

I Basic

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

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

SetArray

Lagrar den gjevne verdien fr√• ei oppgjeve m√•lcelle. Det oppdaterte omr√•det utvidar seg fr√• m√•lcella eller fr√• √łvre, venstre hj√łrne i det gjevne omr√•det for √• f√• plass til storleiken p√• inndataargumentet value. Vektorar vert alltid utvida loddrett.

Metoden returnerer ein streng som representerer det endra området som eit celleområde.

Syntaks:

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

Parametrar:

målcelle: Cella eller eit område som ein streng der lagringa av den gjevne verdien skal byrja.

verdi: Ein skalar, ein vektor eller ei matrise (i Python, ein- eller todimensjonale lister og tuppler) med dei nye verdiane som skal lagrast fr√• m√•lcella, eller fr√• √łvre, venstre hj√łrne av omr√•det viss m√•lcella er eit omr√•de. Dei nye verdiane m√• vera strengar, talverdiar eller datoar. Andre typar vil f√łra til at dei tilsvarande cellene vert t√łmde.

Eksempel:

I Basic

Det meste eksempelet brukar den innebygde funksjonen DimArray for √• laga ei matrise og lagra ho i cella ¬ę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 eksempelet brukar metoden RangeInit fr√• ScriptForge Array service for √• laga ei matrise med verdiar som vert lagra fr√• cella ¬ęA1¬Ľ og nedover.


    ' Fyll f√łrste kolonne med verdiar fr√• 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

Viss du vil dumpa heile innhaldet i ei matrise i eit ark, brukar du SetArray. Viss du vil dumpa innhaldet i ei matrise berre innanfor grensene for det gjevne celleområdet, brukar du SetValue.


SetValue

Lagrar den gjevne verdien i det spesifiserte området. Storleiken på det endra området er lik storleiken på målområdet.

Metoden returnerer ein streng som representerer det endra området som eit celleområde.

Syntaks:

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

Parametrar:

målområde: Området som verdiane vert henta frå skal lagrast, som ein streng.

verdi: Ein skalar, ein vektor eller ei matrise med dei nye verdiane for kvar celle i omr√•det. Dei nye verdiane m√• vera strengar, talverdiar eller datoar. Andre typar vil f√łra til at dei tilsvarande cellene vert t√łmde.

Heile omr√•det vert oppdatert medan resten av arket ikkje vert endra. Viss storleiken p√• verdi er mindre enn storleiken p√• m√•lomr√•det vert dei resterande cellene t√łmde.

Viss storleiken av verdi er st√łrre enn storleiken p√• m√•lomr√•det, vert verdi berre delvis kopiert til storleiken p√• m√•lomr√•det er fylt opp.

Vektorar vert alltid utvida loddrett unnateke viss m√•lomr√•det er n√łyaktig 1 rad h√łgt.

Eksempel:

I Basic

    oDoc.SetValue("A1", 2)
    ' Nedanfor er verdi-matrisa mindre enn m√•lomr√•det (resterande celler vert t√łmde)
    oDoc.SetValue("A1:F1", Array(1, 2, 3))
    ' Nedanfor har verdien og målområdet same storleiken
    oDoc.SetValue("A1:D2", SF_Array.AppendRow(Array(1, 2, 3, 4), Array(5, 6, 7, 8)))
  

√ėnskjer du √• fylla ei enkelt rad med verdiar, kan du bruka funksjonen Offset. I eksempelet nedanfor b√łr du g√• ut fr√• at arrData er ei eindimensjonal matrise:


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

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

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

SetCellStyle

Bruker den gjevne cellestilen p√• det gjevne m√•lomr√•det. Heile omr√•det vert oppdatert, og resten av arket vert st√•ande ur√łrt. Viss cellestilen ikkje finst, oppst√•r det ein feil.

Metoden returnerer ein streng som representerer det endra området som eit celleområde.

Syntaks:

svc.SetCellStyle(targetrange: str, style: str): str

Parametrar:

målområde: Området som stilen skal brukast på, som ein streng.

stil: Namnet på cellestilen som skal brukast..

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

Set inn den gjevne (matrisa av) formelen/formlane i det spesifiserte området. Storleiken på det endra området er lik storleiken på området.

Metoden returnerer ein streng som representerer det endra området som eit celleområde.

Syntaks:

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

Parametrar:

målområde: Området der formlane skal setjast inn, som ein streng.

formel: Ein streng, ein vektor eller ei matrise av strengar med nye formlar til kvar celle i målområdet.

Heile området vert oppdatert medan resten av arket er uendra.

Viss den gjevne formelen er ein streng, vert den unike formelen limt inn langs heile området med justering av dei relative referansane.

Vis storleiken p√• formel er mindre enn storleiken p√• m√•lomr√•de, vert dei resterande cellene t√łmde.

Viss storleiken p√• formel er st√łrre enn storleiken p√• m√•lomr√•det, vert formelen berre delvis kopiert til storleiken p√• m√•lomr√•det er fylt opp.

Vektorar vert alltid utvida loddrett unnateke viss m√•lomr√•det er n√łyaktig 1 rad h√łgt.

Eksempel:

I Basic

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

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

ShiftDown

Flytter eit gjeve celleområde nedover ved å setja inn tomme rader. Det gjeldande utvalet vert ikkje påverka.

Avhengig av verdien av argumentet wholerow, kan dei innsette radene anten spenna over breidda til det gjevne området eller alle kolonnane i rada.

Denne metoden returnerer ein streng som representerer den nye plasseringa av det opphavlege området.

note

Viss det flytte området går over kantane på arket, skjer det ingenting.


Syntaks:

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

Parametrar:

range: Området ovanfor som cellene skal setjast inn i, som ein streng.

wholerow: Viss sett til Usann (standard) vil breidda på dei innsette radene vera den same som breidda i det spesifiserte range. Elles vil dei innsette radene spenna over alle kolonnane i arket.

rows: Kor mange rader som skal setjast inn. Standardverdien er h√łgda p√• det opphavlege range. Talet p√• rader m√• vera eit positivt tal.

Eksempel:

I Basic

    ' Flyttar omr√•det ¬ęA3:D3¬Ľ ned √©i rad. P√•verkar berre kolonnane A til D
    oDoc.ShiftDown("A3:D3")
    ' Den sletta rada spenner over alle kolonnane i arket
    oDoc.ShiftDown("A3:D3", WholeRow := True)
    ' Flytter området "A3:D3" fem rader ned
    oDoc.ShiftDown("A3:D3", Rows := 5)
    ' Flytter området "A3:D10" ned med to rader og viser den nye plasseringa til det opphavlege området
    Dim sNewRange as String
    sNewRange = oDoc.ShiftDown("A3:D10", Rows := 2)
    MsgBox sNewRange   ' $Sheet1.$A$5:$D$12
  
I Python

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

ShiftLeft

Slettar kolonnane lengst til venstre i eit gjeve omr√•de og flytter alle cellene til venstre for det p√•verka omr√•det til h√łgre for det. Den gjeldande markeringa vert ikkje p√•verka.

Avhengig av verdien av argumentet wholecolumn, kan dei innsette kolonnane anten spenna over h√łgda til det gjevne omr√•det eller alle radene i kolonnen.

Denne metoden returnerer ein streng som representerer plasseringa av resten av startområdet. Viss alle cellene i det opphavlege området er sletta, vert det returnert ein tom streng.

Syntaks:

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

Parametrar:

område: Området som cellene skal slettast i, som ein streng.

wholecolumn: Viss sett til Usann (standard) vil h√łgda p√• dei sletta kolonnane vera den same som h√łgda i det spesifiserte range. Elles vil dei sletta kolonnane spenna over alle radene i arket.

columns: Talet på kolonnar som skal slettast frå det gjevne området. Standardverdien er breidda på det opphavlege range, som også er maksimumsverdien for dette argumentet.

Eksempel:

I Basic

    ' Slettar omr√•det "B3:B6"; flyttar alle dei gjenverande cellene mod h√łgre
    oDoc.ShiftLeft("B3:B6")
    ' Slettar den f√łrste kolonnen i omr√•det "A3:D6"
    oDoc.ShiftLeft("A3:D6", Columns := 1)
    ' Dei sletta kolonnane (A til D) spenner over alle radene 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

Slettar dei √łvste rekkjene i eit gjeve omr√•de og flytter alle cellene under det p√•verka omr√•det oppover. Den gjeldande markeringa vert ikkje p√•verka.

Avhengig av verdien av argumentet wholerow, kan dei sletta radene anten spenna over breidda til det gjevne området eller alle kolonnane i rada.

Denne metoden returnerer ein streng som representerer plasseringa av resten av startområdet. Viss alle cellene i det opphavlege området er sletta, vert det returnert ein tom streng.

Syntaks:

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

Parametrar:

område: Området som cellene skal slettast i, som ein streng.

wholerow: Viss sett til Usann (standard) vil breidda på dei sletta radene vera den same som breidda i det spesifiserte range. Elles vil dei sletta radene spenna over alle kolonnane i arket.

rader: Talet p√• rader som skal slettast fr√• det gjevne omr√•det. Standardverdien er h√łgda p√• det opphavlege range, som ogs√• er maksimumsverdien for dette argumentet.

Eksempel:

I Basic

    ' Slettar området "A3:D3"; flytter alle celler nedanfor ei rad opp
    oDoc.ShiftUp("A3:D3")
    ' Slettar den f√łrste rada i omr√•det "A3:D6"
    oDoc.ShiftUp("A3:D6", Rows := 1)
    ' Dei sletta radene spenner over alle kolonnane i arket
    oDoc.ShiftUp("A3:D6", WholeRow := True)
  
I Python

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

ShiftRight

Flytter eit gjeve celleomr√•de mot h√łgre ved √• setja inn tomme kolonnar. Det gjeldande utvalet vert ikkje p√•verka.

Avhengig av verdien av argumentet wholecolumn, kan dei innsette kolonnane anten spenna over h√łgda til det gjevne omr√•det eller alle radene i kolonnen.

Denne metoden returnerer ein streng som representerer den nye plasseringa av det opphavlege området.

note

Viss det flytta området går over kantane på arket, skjer det ingenting.


Syntaks:

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

Parametrar:

område: Det området som får sett inn tomme kolonnar på venstre side, som ein streng.

wholecolumn: Viss sett til Usann (standard) vil h√łgda p√• dei innsette kolonnane vera den same som h√łgda i det spesifiserte range. Elles vil dei sletta kolonnane spenna over alle radene i arket.

Kolonnar: Talet på kolonnar som skal setjast inn. Standardverdien er breidda på det opphavlege range (område).

Eksempel:

I Basic

    ' Flyttar omr√•det "A3:A6" ein kolonne til h√łgre. P√•verkar berre radene 3 til 6
    oDoc.ShiftRight("A3:A6")
    ' Flyttar omr√•det "A3:A6" fem kolonnar til h√łgre
    oDoc.ShiftRight("A3:A6", Columns := 5)
    ' Den innsette kolonnen spenner over alle radene 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 gjevne omr√•det basert p√• opptil tre kolonnar/rader. Sorteringsrekkjef√łlgja kan variera etter kolonne/rad. Det vert returnert ein streng som representerer det endra celleomr√•det. Storleiken p√• det endra omr√•det vert fullt ut bestemt av storleiken p√• kjeldeomr√•det.

Syntaks:

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

Parametrar:

område: Området som skal sorterast, som ein streng.

sorteringsn√łklar: Ein skalar (viss 1 kolonne/rad) eller ei matrise av kolonnar/rader som byrjar fr√• 1. Det h√łgste talet p√• n√łklar er 3.

sorteringsrekkjef√łlgje: Ein skalar eller ei matrise med strengar som inneheld verdiane ASC (stigande), DESC (synkande) eller "" (som normalt er stigande). Kvart element er bunde saman med det tilsvarande elementet i sorteringsn√łklar. Viss sorteringsrekkjef√łlgje-matrisa er kortare enn sorteringsn√łklar, vert dei resterande n√łklane sorterte stigande.

m√•lcelle: M√•lcella for det sorterte celleomr√•det, som ein streng. Viss det er gjeve eit omr√•de, vert berre cella √łvst til venstre rekna med. Kjeldeomr√•det vert som standard overskrive.

inneheld_overskrift: N√•r Sann, vert den f√łrste rada/kolonnen ikkje sortert.

Store/små : (Skil store og små bokstavar). Berre for samanlikning av strengar. Standard = Usann.

sorter_kolonnar: N√•r Sann vert kolonnane sorterte fr√• venstre mot h√łgre. Standard =Usann : rader vert sorterte ovanfr√• og nedover.

Eksempel:

I Basic

    ' Sorteringsområdet basert på kolonnar. A (stigande) og C (fallande)
    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-rutinane og -identifikatorane som vert innleidde med understrek ¬ę_¬Ľ er reserverte for internt bruk. Dei er ikkje meint brukte i Basic-makroar.


St√łtt oss!