Storitev SFDocuments.Calc

Knjižnica SFDocuments v skupni rabi vsebuje metode in lastnosti, ki pomagajo pri upravljanju in ravnanju z dokumenti LibreOffice.

Storitev SFDocuments.Calc je podrazred storitve SFDocuments.Document. Do vseh metod in lastnosti, definiranih za storitev Document, lahko dostopate tudi z uporabo instance storitve Calc.

Storitev Calc se osredotoča na:

note

Ta stran pomoči opisuje metode in lastnosti, ki so uporabne samo za dokumente programa Calc.


Priklic storitve

Pred uporabo storitve Calc je potrebno naložiti ali uvoziti knjižnico ScriptForge:

note

• Za makre Basic mora biti naložena knjižnica ScriptForge z naslednjim ukazom:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")

• Za skripte Python mora biti opravljen uvoz iz modula scriptforge:
from scriptforge import CreateScriptService


Storitev Calc je tesno povezana s storitvijo UI knjižnice ScriptForge. Sledi nekaj primerov, kako lahko prikličete storitev Calc.

V Basicu

Spodnji odlomek kode ustvari instanco storitve Calc, ki se nanaša na trenutno dejavni dokument Calc.


    Set oDoc = CreateScriptService("Calc")
  

Drugi način ustvarjanja instance storitve Calc je z uporabo storitve UI. Naslednji primer ustvari nov dokument programa Calc in oDoc je instanca storitve Calc:


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

Ali z uporabo metode OpenDocument iz storitve UI:


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

Instanco storitve Calc lahko tvorite tudi z metodo CreateScriptService:


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

V zgornjem primeru je »MyFile.ods« ime okna odprtega dokumenta. Če ta argument ni podan, je upoštevano dejavno okno.

Priporočamo, da po uporabi sprostite vire:


    Set oDoc = oDoc.Dispose()
  

Če je dokument zaprt z metodo CloseDocument, ni potrebno sproščati virov z zgoraj opisanim ukazom.

V Pythonu

    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

Uporaba predpone »SFDocuments.« pri klicu storitve je neobvezna.


Definicije

Številne metode zahtevajo za argument "Sheet" (delovni list) ali "Range" (obseg). Posamezne celice veljajo za poseben primer obsega (Range).

Oba lahko izrazite z nizom ali s sklicem (= predmet), odvisno od situacije:

Primer:

Spodnji primer kopira podatke iz dokumenta A (odprtega samo za branje in skritega) v dokument B.

V Basicu

    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)
  
V Pythonu

    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

Lahko je ime delovnega lista kot string ali object, ki ga poda lastnost .Sheet.

Nadomestni znak "~" (tilda) predstavlja trenutni delovni list.

RangeName

Niz, ki označuje množico zveznih celic, ki se nahajajo na delovnem listu trenutne instance, ali predmet object, ki ga ustvari lastnost .Range.

Nadomestni znak "~" (tilda) predstavlja trenutni izbor ali prvi izbrani obseg, če je izbranih več obsegov.

Nadomestni znak "*" predstavlja vse uporabljene celice.

Ime delovnega lista v obsegu ni obvezno. Če ime delovnega lita ni podano, je uporabljen dejavni delovni list. Obsegajoči enojni narekovaji in znaki $ so dovoljeni, vendar so prezrti.

Ko določite SheetName kot niz, je raba enojnih narekovajev za ime delovnega lista obvezna, če ime vsebuje presledke (» «) ali pike (».«).

Spodnji primeri ilustrirajo primere, ko je raba enojnih narekovajev obvezna:


      ' Raba enojnih narekovajev ni obvezna
      oDoc.clearAll("SheetA.A1:B10")
      oDoc.clearAll("'SheetA'.A1:B10")
      ' Raba enojnih narekovajev je obvezna
      oDoc.clearAll("'Sheet.A'.A1:B10")
    
tip

Z izjemo lastnosti CurrentSelection storitev Calc obravnava le posamezne obsege celic.


Primeri veljavnih obsegov

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

Posamična celica

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

Enojen obseg z več celicami

$'DelovniListX'.*

Vse uporabljene celice na danem delovnem listu

1) $'DelovniListX'.A:A (stolpec A)
2) 3:5 (vrstice od 3 do 5)

Vse celice v zveznih stolpcih ali vrsticah do nazadnje uporabljene celice

mojObseg

Obseg z imenom »mojObseg« na ravni delovnega lista

1) ~.nekObseg
2) DelovniListX.nekObseg

Ime obsega na ravni delovnega lista

mojDokument.Range("DelovniListX.D2:F6")

Obseg na delovnem listu DelovniListX v datoteki, povezani z instanco Calc mojDokument

~.~ ali ~

Trenutni izbor na aktivnem delovnem listu


Lastnosti

Vse lastnosti, splošne za poljuben dokument, se lahko implicitno uporabljajo tudi za dokumente Calc. Za več informacij si oglejte stran pomoči za storitev Document.

Lastnosti, ki so posebej na voljo za dokumente Calc, so:

Ime

Samo za branje

Argument

Vrsta vrnjene vrednosti

Opis

CurrentSelection

Ne

Brez

Niz ali polje nizov

Enojni izbrani obseg kot niz ali seznam izbranih obsegov kot polje.

FirstCell

Da

ImeDelovnegaLista ali ImeObsega kot String

String

Vrne prvo uporabljeno celico v danem obsegu ali delovnem listu.

FirstColumn

Da

ImeDelovnegaLista ali ImeObsega kot String

Long

Najde številko skrajno levega stolpca v danem obsegu ali delovnem listu.

FirstRow

Da

ImeDelovnegaLista ali ImeObsega kot String

Long

Najde številko najvišje vrstice v danem obsegu ali delovnem listu.

Height

Da

ImeObsega As String

Long

Število vrstic (>= 1) v danem obsegu.

LastCell

Da

ImeDelovnegaLista ali ImeObsega kot String

String

Nazadnje uporabljena celica v danem obsegu ali delovnem listu.

LastColumn

Da

ImeDelovnegaLista ali ImeObsega kot String

Long

Nazadnje uporabljen stolpec v danem obsegu ali delovnem listu.

LastRow

Da

ImeDelovnegaLista ali ImeObsega kot String

Long

Nazadnje uporabljena vrstica v danem obsegu ali delovnem listu.

Range

Da

ImeObsega As String

Object

Sklic na obseg, ki ga lahko uporabite kot argument za metode, kakršna je CopyToRange.

Region

Da

ImeObsega As String

String

Vrne naslov najmanjšega področja, ki vsebuje navedeni obseg, tako da je področje obkroženo s praznimi celicami ali robovi delovnega lista. To je ekvivalentno uporabi tipk za bližnjice na danem obsegu.

Sheet

Da

ImeDelovnegaLista As String

Object

Sklic na delovni list, ki ga lahko uporabite kot argument za metode, kakršna je CopySheet.

SheetName

Da

ImeObsega As String

String

Vrne ime delovnega lista v danem naslovnem obsegu.

Sheets

Da

Brez

Polje nizov

Seznam z imeni vseh obstoječih delovnih listov.

Width

Da

ImeObsega As String

Long

Število stolpcev (>= 1) v danem obsegu.

XCellRange

Da

ImeObsega As String

Object

Predmet UNO com.sun.star.Table.XCellRange.

XSheetCellCursor

Da

ImeObsega As String

Object

Predmet UNO com.sun.star.sheet.XSheetCellCursor. Po premiku kazalke lahko do ciljnega naslova obsega dostopate prek lastnosti UNO AbsoluteName predmeta kazalke, ki vrne vrednost niza, ki jo lahko uporabite kot argument za lastnosti in metode storitve Calc.

XSpreadsheet

Da

ImeDelovnegaLista As String

Object

Predmet UNO com.sun.star.sheet.XSpreadsheet.


tip

Obiščite spletišče dokumentacije API LibreOffice, da izveste več o UNO-predmetih XCellRange, XSheetCellCursor in XSpreadsheet (vse v angl. jeziku).


Metode

Seznam metod v storitvi 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

Vrne naslov obsega kot niz v koordinatah delovnega lista, t.j. številki vrstice in stolpca.

Če je podan le par koordinat, potem vrne naslov posamezne celice. Dodatna argumenta lahko določata desno spodnjo celico pravokotnega obsega.

Skladnja:

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

Parametri:

row1, column1: določite številke vrstice in stolpca leve vrhnje celice v obravnavanem obsegu. Izhodiščni številki vrstic in stolpcev sta 1.

row2, column2: določite številke vrstice in stolpca desne spodnje celice v obravnavanem obsegu. Če argumenta nista podana ali če sta podani vrednosti manjši od row1 in column1, potem vrne naslov obsega posamezne celice, ki ga predstavljata parametra row1 in column1.

sheetname: ime delovnega lista, ki ga želite dodati vrnjenemu naslovu obsega. Delovni list mora obstajati. Privzeta vrednost je »~« in predstavlja trenutno dejavni delovni list.

Primer:

Spodnja primera v Basicu in Pythonu predpostavljata, da je delovni list z imenom »Sheet1« trenutno dejaven delovni list.

V Basicu

    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
  
V Pythonu

    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

Metodo A1Style lahko kombinirate s poljubno od številnih lastnosti in metod storitve Calc, ki zahtevajo za argument obseg, kot so GetValue, GetFormula, ClearAll itn.


Activate

Če je argument sheetname podan, je podani delovni list aktiviran in postane trenutni izbrani delovni list. Če argument manjka, se aktivira okno dokumenta.

Skladnja:

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

Parametri:

sheetname: ime delovnega lista, ki ga želite v dokumentu narediti dejavnega. Privzeta vrednost je prazen niz, kar pomeni, da bo okno dokumenta aktivirano brez spremembe dejavnega delovnega lista.

Primer:

Spodnji primer aktivira delovni list z imenom "Sheet4" v trenutno aktivnem dokumentu.

V Basicu

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

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

Aktiviranje delovnega lista je smiselno le za delo z dokumentom programa Calc. Da bi zagotovili, da je dokument Calc dosegljiv, lahko uporabite lastnost isCalc predmeta dokumenta, ki vrne True, če gre za dokument Calc, sicer pa False.


Charts

Vrne seznam z imeni vseh predmetov grafikona na danem delovnem listu ali posamezno instanco storitve Chart.

Skladnja:

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

Parametri:

sheetname: ime delovnega lista, iz katerega bo pridobljen seznam grafikonov ali na katerem se nahaja navedeni grafikon.

chartname: uporabniško določeno ime predmeta grafikona, ki bo vrnjen. Če grafikon nima uporabniško določenega imena, potem lahko uporabite interno ime predmeta. Če je ta argument izpuščen, vrne seznam imen vseh grafikonov na navedenem delovnem listu.

tip

Uporabite zloženi zavihek Krmar v stranski vrstici, da preverite imena, dodeljena grafikonom. Glejte pod kategorijo Predmeti OLE.


Primer:

V Basicu

Spodnji primer prikazuje število predmetov grafikonov na delovnem listu z imenom »Sheet1«.


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

Naslednji primer dostopa do grafikona z imenom »MyChart« na delovnem listu »Sheet1« in izpiše njegovo vrsto.


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

    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

Počisti vso vsebino in oblikovanje podanega obsega.

Skladnja:

svc.ClearAll(range: str)

Parametri:

Range: obseg, ki bo počiščen, kot niz.

Primer:

V Basicu

      oDoc.ClearAll("SheetX.A1:F10")
  
V Pythonu

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

ClearFormats

Počisti oblikovanje in sloge v podanem obsegu.

Skladnja:

svc.ClearFormats(range: str)

Parametri:

Range: obseg, katerega oblikovanje in slogi bodo počiščeni, kot niz.

Primer:

V Basicu

      oDoc.ClearFormats("SheetX.*")
  
V Pythonu

    myDoc.ClearFormats("SheetX.*")
  

ClearValues

Počisti vrednosti in formule v podanem obsegu.

Skladnja:

svc.ClearValues(range: str)

Parametri:

Range: obseg, katerega vrednosti in formule bodo počiščeni, kot niz.

Primer:

V Basicu

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

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

CompactLeft

Izbriše stolpce navedenega obsega, ki se ujemajo s filtrom, izraženem v obliki formule programa Calc. Filter se uveljavi na vsakem stolpcu, tako da odloča, ali bo izbrisan ali ne.

Izbrisani stolpec je možno omejiti na višino navedenega obsega ali raztegniti na višino celotnega delovnega lista, s čimer izbrišete celotne stolpce.

Ta metoda vrne niz, ki predstavlja naslov obsega strnjenega obsega. Če so izbrisani vsi stolpci, potem vrne prazen niz.

note

Če je izbran obseg celic, klic te metode ne bo vplival na izbor.


Skladnja:

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

Parametri:

range: obseg, v katerem bodo stolpci izbrisani, podan kot niz.

wholecolumn: če ima vrednost False, bo z delovnega lista izbrisan celoten stolpec. Privzeta vrednost je False, kar pomeni, da bo izbrisani stolpec po višini omejen na navedeni obseg range.

filterformula: na vsakem stolpcu uveljavljeni filter za določanje, ali naj bo stolpec izbrisan. Filter je izražen v obliki formule programa Calc, ki jo je potrebno uveljaviti na prvem stolpcu. Če formula za stolpec vrne True, bo tisti stolpec izbrisan. Privzeti filter izbriše vse prazne stolpce.

Primer: recimo, da je izbran obseg A1:J200 (višina = 200), tako se privzeta formula glasi =(COUNTBLANK(A1:A200)=200). To pomeni, da če je vseh 200 celic v prvem stolpcu praznih (Stolpec A), bo stolpec izbrisan. Upoštevajte, da je formula izražena zgolj s sklicevanjem na prvi stolpec. Metoda CompactLeft interno posploši to formulo za vse preostale stolpce.

Primer:

V Basicu

    ' Izbriše vse prazne stolpce v obsegu G1:L10 z delovnega lista DelovniList1
    novobseg = oDoc.CompactLeft("DelovniList1.G1:L10")
    ' Spodnji primer je podoben, vendar izbriše celoten stolpec z delovnega lista
    novobseg = oDoc.CompactLeft("DelovniList1.G1:L10", WholeColumn := True)
    ' Izbriše vse stolpce, kjer je prva vrstica označena z »X«
    novobseg = oDoc.CompactLeft("DelovniList1.G1:L10", FilterFormula := "=(G1=""X"")")
    ' Izbriše vse stolpce, v katerih je vsota vrednosti stolpca liha
    novobseg = oDoc.CompactLeft("DelovniList1.G1:L10", FilterFormula := "=(MOD(SUM(G1:G10);2)=1)")
  
V Pythonu

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

CompactUp

Izbriše vrstice navedenega obsega, ki se ujemajo s filtrom, izraženem v obliki formule programa Calc. Filter se uveljavi na vsaki vrstici, tako da odloča, ali bo izbrisana ali ne.

Izbrisani stolpec je možno omejiti na širino navedenega obsega ali raztegniti na širino celotnega delovnega lista, s čimer izbrišete celotne vrstice.

Ta metoda vrne niz, ki predstavlja naslov obsega strnjenega obsega. Če so izbrisane vse vrstice, potem vrne prazen niz.

note

Če je izbran obseg celic, klic te metode ne bo vplival na izbor.


Skladnja:

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

Parametri:

range: obseg, v katerem bodo vrstice izbrisane, podan kot niz.

wholerow: če ima vrednost False, bo z delovnega lista izbrisana celotna vrstica. Privzeta vrednost je False, kar pomeni, da bo izbrisana vrstica po širini omejena na navedeni obseg range.

filterformula: na vsaki vrstici uveljavljen filter za določanje, ali naj bo vrstica izbrisana. Filter je izražen v obliki formule programa Calc, ki jo je potrebno uveljaviti na prvi vrstici. Če formula za vrstico vrne True, bo tista vrstica izbrisana. Privzeti filter izbriše vse prazne vrstice.

Primer: recimo, da je izbran obseg A1:J200 (širina = 10), tako se privzeta formula glasi =(COUNTBLANK(A1:J1)=10). To pomeni, da če je vseh 10 celic v prvi vrstici praznih (Vrstica 1), bo vrstica izbrisana. Upoštevajte, da je formula izražena zgolj s sklicevanjem na prvo vrstico. Metoda CompactUp interno posploši to formulo za vse preostale vrstice.

Primer:

V Basicu

    ' Izbriše vse prazne vrstice v obsegu G1:L10 z DelovnegaLista1
    novobseg = oDoc.CompactUp("DelovniList1.G1:L10")
    ' Spodnji primer je podoben, vendar izbriše celotno vrstico z delovnega lista
    novobseg = oDoc.CompactUp("DelovniList1.G1:L10", WholeRow := True)
    ' Izbriše vse vrstice, kjer je prvi stolpec označen z »X«
    novobseg = oDoc.CompactUp("DelovniList1.G1:L10", FilterFormula := "=(G1=""X"")")
    ' Izbriše vse vrstice, v katerih je vsota vrednosti vrstice liha
    novobseg = oDoc.CompactUp("DelovniList1.G1:L10", FilterFormula := "=(MOD(SUM(G1:L1);2)=1)")
  
V Pythonu

    novobseg = myDoc.CompactUp("DelovniList1.G1:L10")
    novobseg = myDoc.CompactUp("DelovniList1.G1:L10", wholerow = True)
    novobseg = myDoc.CompactUp("DelovniList1.G1:L10", filterformula = '=(G1="X")')
    novobseg = myDoc.CompactUp("DelovniList1.G1:L10", filterformula = '=(MOD(SUM(G1:L1);2)=1)')
  

CopySheet

Kopira navedeni delovni list pred obstoječi delovni list ali na konec seznama delovnih listov. Delovni list, ki bo kopiran, je lahko vsebovan v poljubnem odprtem dokumentu programa Calc. Vrne True, če uspe.

Skladnja:

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

Parametri:

Sheetname: ime delovnega lista, ki bo kopiran, kot niz ali sklic nanj kot predmet.

Newname: ime delovnega lista, ki bo vstavljen. Ime ne sme biti uporabljeno v dokumentu.

Beforesheet: ime (niz) ali indeks (številski, od 1 naprej) delovnega lista, pred katerega bo vstavljen kopiran delovni list. Ta argument je neobvezen in privzeto dejanje je dodajanje kopiranje delovnega lista na končni položaj.

Primer:

V Basicu

Naslednji primer naredi kopijo delovnega lista "SheetX" in jo postavi kot zadnji delovni list v trenutni dokument. Ime kopiranega delovnega lista je "SheetY".


    Dim oDoc as Object
    'Postavi predmet Document v dejavno okno
    Set oDoc = CreateScriptService("Calc")
    oDoc.CopySheet("SheetX", "SheetY")
  

Spodnji primer kopira "SheetX" iz "FileA.ods" in ga prilepi na zadnje mesto v "FileB.ods" z imenom "SheetY":


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

    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

Za kopiranje delovnih listov med odprtimi dokumenti uporabite CopySheet. Če želite kopirati delovne liste iz dokumentov, ki so zaprti, uporabite CopySheetFromFile.


CopySheetFromFile

Kopira navedeni delovni list iz zaprtega dokumenta Calc in ga prilepi pred obstoječi delovni list ali na konec delovnih listov datoteke, na katero se sklicuje predmet Document.

Če datoteka ne obstaja, prikliče napako. Če datoteka ni veljavna datoteka Calc, je vstavljen prazen delovni list. Če v vhodni datoteki izvorni delovni list ne obstaja, vstavi sporočilo o napaki na vrh novo prilepljenega delovnega lista.

Skladnja:

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

Parametri:

Filename: ime datoteke, ki jo želite odpreti. Slediti mora zapisu SF_FileSystem.FileNaming. Datoteka ne sme biti zaščitena z geslom.

Sheetname: ime delovnega lista, ki bo kopiran, kot niz.

Newname: ime kopiranega delovnega lista, ki bo vstavljen v dokument. Ime ne sme biti uporabljeno v dokumentu.

Beforesheet: ime (niz) ali indeks (številski, od 1 naprej) delovnega lista, pred katerega bo vstavljen kopiran delovni list. Ta argument je neobvezen in privzeto dejanje je dodajanje kopiranje delovnega lista na končni položaj.

Primer:

Naslednji primer kopira delovni list "SheetX" iz datoteke "myFile.ods" in ga prilepi v dokument, na katerega se sklicuje ime dokumenta "oDoc", na prvo mesto, kot delovni list "SheetY".

V Basicu

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

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

CopyToCell

Kopira navedeni izvorni obseg (vrednosti, formule in oblikovanje) v ciljni obseg ali celico. Metoda oponaša vedenje operacije kopiraj/prilepi iz obsega v posamezno celico.

Vrne niz, ki predstavlja spremenjeni obseg celic. Velikost spremenjenega področja je povsem določen z velikostjo izvornega področja.

Izvorni obseg lahko pripada drugemu odprtemu dokumentu.

Skladnja:

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

Parametri:

sourcerange: izvorni obseg kot niz, ko izvira iz istega dokumenta, ali kot sklic, ko izvira iz drugega odprtega dokumenta Calc.

Destinationcell: ciljna celica, kamor bo prilepljen kopirani obseg celic, podana kot niz. Če je podan obseg, se obravnava le njegova leva vrhnja celica.

Primer:

V Basicu

Sledi primer, ko sta vir in cilj v isti datoteki:


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

Spodnji primer ilustrira, kako kopirate obseg iz drugega odprtega dokumenta Calc:


    Dim ui as Variant : ui = CreateScriptService("UI")
    Dim oDocSource As Object, oDocDestination As Object
    ' Odpre izvorni dokument v ozadju (skrito)
    Set oDocSource = ui.OpenDocument("C:\SourceFile.ods", Hidden := True, ReadOnly := True)
    Set oDocDestination = CreateScriptService("Calc")
    oDocDestination.CopyToCell(oDocSource.Range("Sheet1.C2:C4"), "SheetT.A5")
    ' Ne pozabite zapreti izvornega dokumenta, saj je bil odprt kot skrit
    oDocSource.CloseDocument()
  
V Pythonu

    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

Če želite oponašati kopiranje/lepljenje iz obsega v posamezno celico, uporabite CopyToCell. Če želite oponašati kopiranje/lepljenje iz obsega v večji obseg (z večkrat ponovljenimi istimi celicami), uporabite CopyToRange.


CopyToRange

Kopira navedeni izvorni obseg (vrednosti, formule in oblike) navzdol in/ali desno v ciljni obseg. Metoda oponaša vedenje operacije kopiraj/prilepi iz obsega vira v večji ciljni obseg.

Metoda vrne niz, ki predstavlja spremenjeni obseg celic.

Izvorni obseg lahko pripada drugemu odprtemu dokumentu.

Skladnja:

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

Parametri:

sourcerange: izvorni obseg kot niz, ko izvira iz istega dokumenta, ali kot sklic, ko izvira iz drugega odprtega dokumenta Calc.

destinationrange: cilj kopiranega obsega celic, kot niz.

Primer:

V Basicu

Kopiranje znotraj istega dokumenta:


    oDoc.CopyToRange("SheetX.A1:F10", "SheetY.C5:J5")
    ' Vrne niz obsega: "$SheetY.$C$5:$J$14"
  

Kopiranje iz ene datoteke v drugo:


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

    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

Ustvari nov predmet grafikona, ki prikazuje podatke iz navedenega obsega. Z vrnjenim predmetom grafikona lahko nadalje upravljate z uporabo storitve Chart.

Skladnja:

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

Parametri:

chartname: uporabniško določeno ime grafikona, ki bo ustvarjen. Ime mora biti enkratno oz. na delovnem listu ne sme biti uporabljeno.

sheetname: ime delovnega lista, na katerega želite umestiti grafikon.

range: obseg, ki bo uporabljen kot vir podatkov za grafikon. Obseg se lahko nanaša na poljuben delovni list v dokumentu programa Calc.

columnheader: če je True, bo vrhnja vrstica obsega služila za oznake na osi kategorij ali legendo (privzeta vrednost je False).

rowheader: če je True, bo skrajno levi stolpec služil za oznake na osi kategorij ali legendo (privzeta vrednost je False).

Primer:

Spodnja primera v Basicu in Pythonu ustvarita grafikon s podatki iz obsega »A1:B5« delovnega lista »Sheet1« in postavita grafikon na delovni list »Sheet2«.

V Basicu

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

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

Glejte stran pomoči o storitvi Chart ScriptForge, da izveste več, kako nadalje upravljate s predmeti grafikona. Spremenite lahko lastnosti, kot so vrsta grafikona, naslov grafikona, naslov osi in položaj grafikona.


CreatePivotTable

Ustvari novo vrtilno tabelo z lastnostmi, ki jih določajo argumenti, podani z metodo.

Vrtilna tabela mora imeti svoje ime. Če vrtilna tabela s takšnim imenom že obstaja na ciljnem delovnem listu, bo brez opozorila zamenjana.

Metoda vrne niz, ki vsebuje obseg, v katerega je postavljena nova vrstilna tabela.

Skladnja:

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

Parametri:

pivottablename: uporabniško določeno ime nove vrstilne tabele.

sourcerange: obseg, ki vsebuje neobdelane podatke, kot niz. Predvideva se, da vsebuje prva vrstica imena polj, ki jih uporablja vrtilna tabela.

targetcell: celica levo zgoraj, kamor bo umeščena nova vrtilna tabela. Če je podan obseg, se obravnava le njegova leva vrhnja celica.

datafields: lahko je posamezen niz ali polje nizov, ki določajo imena polj in funkcije, ki bodo uporabljene. Če je določeno polje, mora imeti skladnjo Array("ImePolja[;funkcija]", ...).

Dovoljene funkcije so: Sum, Count, Average, Max, Min, Product, CountNums, StDev, StDevP, Var, VarP in Median. Imena funkcij morajo biti podana v angleškem jeziku. Če so vse vrednosti številske, je privzeta funkcija Sum, sicer je privzeta funkcija Count.

rowfields: posamezen niz ali polje nizov z imeni polj, ki bodo uporabljena kot vrstice vrtilne tabele.

columnfields: posamezen niz ali polje nizov z imeni polj, ki bodo uporabljena kot stolpci vrtilne tabele.

filterbutton: določa, ali bo gumb filtra prikazan nad vrtilno tabelo (privzeta vrednost je True).

rowtotals: določa, ali bo v vrtilno tabelo dodan ločen stolpec za vsote vrstic (privzeta vrednost je True).

columntotals: določa, ali bo v vrtilno tabelo dodana ločena vrstica za vsote stolpcev (privzeta vrednost je True).

Primer:

V Basicu

    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("Stvar", "Pokrajina", "Ekipa", "2002", "2003", "2004"), _
        Array("Knjige", "Primorska", "Sara", 14788, 30222, 23490), _
        Array("Bonboni", "Primorska", "Sara", 26388, 15641, 32849), _
        Array("Peresa", "Primorska", "Sara", 16569, 32675, 25396), _
        Array("Knjige", "Primorska", "Beno", 21961, 21242, 29009), _
        Array("Bonboni", "Primorska", "Beno", 26142, 22407, 32841))
    sTable = oDoc.SetArray("A1", vData)
    sPivot = oDoc.CreatePivotTable("PT1", sTable, "H1", _
        Array("2002", "2003;count", "2004;average"), _ ' Tri podatkovna polja
        "Stvar", _ ' Polje ene vrstice
        Array("Pokrajina", "Ekipa"), False) ' Polje dveh stolpcev
  
V Pythonu

    ui = CreateScriptService("UI")
    doc = ui.CreateDocument("Calc")
    vData = [["Stvar", "Pokrajina", "Ekipa", "2002", "2003", "2004"],
             ["Knjige", "Primorska", "Sara", 14788, 30222, 23490],
             ["Bonboni", "Primorska", "Sara", 26388, 15641, 32849],
             ["Peresa", "Primorska", "Sara", 16569, 32675, 25396)],
             ["Knjige", "Primorska", "Beno", 21961, 21242, 29009],
             ["Bonboni", "Primorska", "Beno", 26142, 22407, 32841]]
    sTable = doc.SetArray("A1", vData)
    sPivot = doc.CreatePivotTable("PT1", sTable, "H1",
                                  ["2002", "2003;count", "2004;average"],
                                  "Stvar",
                                  ["Pokrajina", "Ekipa"], False)
  
tip

Če želite izvedeti več o vrtilnih tabelah v LibreOffice Calc, preberite stran pomoči Vrtilna tabela.


DAvg, DCount, DMax, DMin and DSum

Uporabite funkcije Average, Count, Max, Min oz. Sum na vseh celicah, ki vsebujejo številske vrednosti v danem obsegu.

Skladnja:

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

Parametri:

range: obseg, v katerem želimo uporabiti funkcijo, podan kot niz.

Primer:

Spodnji primer uporabi funkcijo vsote Sum na obsegu "A1:A1000" trenutno izbranega delovnega lista:

V Basicu

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

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

Vse te funkcije prezrejo celice v danem obsegu, ki vsebujejo besedilo. Primer: metoda DCount ne šteje celic z besedilom, šteje le številske celice.


ExportRangeToFile

Izvozi navedeni obseg kot sliko ali datoteko PDF.

Metoda vrne True, če je shranjevanje ciljne datoteke uspelo.

note

Skrite vrstice ali stolpci v navedenem obsegu se ne izvozijo v ciljno datoteko.


Skladnja:

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

Parametri:

range: ime delovnega lista ali obsega celic, ki naj bo izvožen, podan kot niz.

filename: ime datoteke, ki jo želite shraniti. Slediti mora zapisu SF_FileSystem.FileNaming.

imagetype: določa vrsto ciljne datoteke, ki jo želite ustvariti. Dovoljene so naslednje vrednosti: "jpeg", "pdf" (privzeto) in "png".

overwrite: če je True, je ciljno datoteko možno prepisati (privzeto = False).

Primer:

V Basicu

    ' Izvozi celoten delovni list v datoteko PDF
    oDoc.ExportRangeToFile("SheetX", "C:\Temp\image.pdf")
    ' Izvozi obseg kot datoteko PNG in prepiše ciljno datoteko, če že obstaja
    oDoc.ExportRangeToFile("SheetX.A1:D10", "C:\Temp\image.png", "png", Overwrite := True)
  
V Pythonu

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

Forms

Glede na podane parametre ta metoda vrne:

Skladnja:

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

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

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

Parametri:

sheetname: ime delovnega lista, iz katerega bo izveden obrazec, kot niz.

form: ime ali indeks, ki ustreza obrazcu, shranjenem v navedeni preglednici. Če ta argument ni podan, metoda vrne seznam z imeni vseh obrazcev, ki so na voljo v preglednici.

Primer:

V sledečih primerih prva vrstica pridobi imena vseh obrazcev, shranjenih na delovnem listu »DelovniList1«, druga pa predmet Form iz obrazca »Obrazec_A«, ki je shranjen v »DelovniList1«.

V Basicu

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

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

GetColumnName

Pretvori številko stolpca iz obsega med 1 in 1024 v ustrezni črkovni niz (stolpec 'A', 'B', 'C', 'D', ..., 'AMJ'). Če je dana številka stolpca izven dovoljenega obsega, vrne niz ničelne dolžine.

Skladnja:

svc.GetColumnName(columnnumber: int): str

Parametri:

columnnumber: številka stolpca kot celoštevilska vrednost v intervalu 1 ... 1024.

Primer:

V Basicu

Prikaže okno s sporočilom z imenom tretjega stolpca, ki je privzeto »C«.


    MsgBox oDoc.GetColumnName(3)
  
V Pythonu

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

Največje dovoljeno število stolpcev na delovnem listu v programu Calc je 1024.


GetFormula

Pridobi formulo ali formule, shranjene v danem obsegu celic kot enostavni niz, enodimenzionalno ali dvodimenzionalno polje nizov.

Skladnja:

svc.GetFormula(range: str): any

Parametri:

range: obseg, iz katerega izvirajo formule, podan kot niz.

Primer:

V Basicu

Naslednji primer vrne polje 3 x 2 s formulami v obsegu "A1:B3" (3 vrstice x 2 stolpca):


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

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

GetValue

Pridobi vrednost(i), shranjene v danem obsegu celic kot posamezno vrednost, enodimenzionalno polje ali dvodimenzionalno polje. Vse vrednosti so vrste double ali nizi.

Skladnja:

svc.GetValue(range: str): any

Parametri:

range: obseg, iz katerega izvirajo nizi, podan kot niz.

Primer:

V Basicu

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

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

Če celica vsebuje datum, bo vrnjena številka, ki ustreza temu datumu. Za pretvorbo številskih vrednosti v datume uporabite vgrajeno funkcijo Basica CDate. V skriptih Python uporabite funkcijo CDate iz storitve Basic.


ImportFromCSVFile

Uvozi vsebino datoteke CSV z besedilom, ločenim z vejico, in jo postavi v dano ciljno celico.

Ciljno področje je počiščeno sleherne vsebine in oblikovanja, preden vstavi vsebino datoteke CSV. Velikost spremenjenega območja je povsem določena z vsebino vhodne datoteke.

Metoda vrne niz, ki predstavlja spremenjeni obseg celic.

Skladnja:

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

Parametri:

filename: ime datoteke, ki jo želite odpreti. Slediti mora zapisu SF_FileSystem.FileNaming.

destinationcell: ciljna celica za vstavljanje uvoženih podatkov, podana kot niz. Če je namesto tega podan obseg, se upošteva le leva vrhnja celica.

filteroptions: argumenti za vhodni filter CSV. Privzeti filter uporabi naslednje predpostavke:

Primer:

V Basicu

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

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

Če želite izvedeti več o možnostih filtra CSV, glejte stran pomoči Možnosti filtra CSV.


ImportFromDatabase

Uvozi vsebino tabele poizvedbe ali množice rezultatov zbirke podatkov, t.j. rezultat ukaza SELECT SQL, tako da ga vstavi v ciljno celico.

Ciljno področje je počiščeno sleherne vsebine in oblikovanja, preden vstavi uvoženo vsebino. Velikost spremenjenega območja je povsem določena z vsebino tabele ali poizvedbe.

Metoda vrne True, če je uvoz uspel.

Skladnja:

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

Parametri:

filename: ime datoteke, ki jo želite odpreti. Slediti mora zapisu SF_FileSystem.FileNaming.

registrationname: ime za iskanje zbirke podatkov v registru zbirk podatkov. Ta argument je prezrt, če je podano ime datoteke filename.

destinationcell: ciljna celica uvoženih podatkov, podana kot niz. Če je podan obseg, se obravnava le njegova leva vrhnja celica.

sqlCommand: ime tabele ali poizvedbe (brez narekovajev ali oglatih oklepajev) ali izjava SQL SELECT, v kateri so imena tabel in polj lahko v oglatih oklepajih ali narekovajih, da izboljšate njeno berljivost.

directsql: ko je True, pošlje ukaz SQL pogonu zbirke podatkov brez predhodne analize. Privzeta vrednost je False. Argument je pri tabelah prezrt. Za poizvedbe je uporabljena tista možnost, ki je veljala ob določitvi poizvedbe.

Primer:

V Basicu

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

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

InsertSheet

Vstavi nov prazen delovni list pred obstoječi delovni list ali na konec seznama delovnih listov.

Skladnja:

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

Parametri:

sheetname: ime novega delovnega lista.

beforesheet: ime (niz) ali indeks (številski, od 1 naprej) delovnega lista, pred katerega bo vstavljen nov delovni list. Ta argument je neobvezen in privzeto dejanje je vstavljanje delovnega lista na zadnje mesto.

Primer:

Naslednji primer vstavi nov prazen delovni list, imenovan "SheetX", in ga postavi pred delovni list "SheetY":

V Basicu

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

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

MoveRange

Premakne navedeni izvorni obseg na ciljni obseg celic. Metoda vrne niz, ki predstavlja spremenjeni obseg celic. Mere spremenjenega področja so povsem določene z velikostjo izvornega področja.

Skladnja:

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

Parametri:

source: izvorni obseg celic, podan kot niz.

destination: ciljna celica, podana kot niz. Če je podan obseg, se kot cilj upošteva njegova leva vrhnja celica.

Primer:

V Basicu

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

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

MoveSheet

Premakne obstoječi delovni list in ga postavi pred navedeni delovni list ali na konec seznama delovnih listov.

Skladnja:

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

Parametri:

sheetname: ime delovnega lista, ki ga želite premakniti. Delovni list mora obstajati, sicer prikliče izjemo.

beforesheet: ime (niz) ali indeks (številski, od 1 naprej) delovnega lista, pred katerega bo postavljen izvorni delovni list. Ta argument je neobvezen in privzeto dejanje je premik delovnega lista na zadnje mesto.

Primer:

Spodnji primer premakne obstoječi delovni list "SheetX" in ga postavi pred delovni list "SheetY":

V Basicu

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

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

Offset

Vrne nov obseg (kot niz), zamaknjen za določeno število vrstic in stolpcev od danega obsega.

Ta metoda se vede enako kot homonimna funkcija Offset programa Calc.

Skladnja:

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

Parametri:

reference: obseg, podan kot niz, ki ga bo metoda uporabila za sklic ob izvajanju operacije zamikanja.

rows: število vrstic, za katere je začetni obseg zamaknjen navzgor (negativna vrednost) ali navzdol (pozitivna vrednost). Uporabite 0 (privzeta vrednost), da ostanete v isti vrstici.

columns: število stolpcev, za katere je začetni obseg zamaknjen levo (negativna vrednost) ali desno (pozitivna vrednost). Uporabite 0 (privzeta vrednost), da ostanete v istem stolpcu.

height: navpična višina območja, ki se začne na položaju novega obsega. Ta argument izpustite, če navpično spreminjanje velikosti ni potrebno.

Width: vodoravna širina območja, ki se začne na položaju novega obsega. Ta argument izpustite, če vodoravno spreminjanje velikosti ni potrebno.

Argumenta rows in columns ne smeta voditi k ničelni ali negativni začetni vrstici ali začetnemu stolpcu.

Argumenta height in width ne smeta voditi k ničelni ali negativni začetni vrstici ali začetnemu stolpcu.

Primer:

V Basicu

    oDoc.Offset("A1", 2, 2)
    'SheetX.$C$3 (A1 se premakne za dve vrstici in dva stolpca navzdol)
    oDoc.Offset("A1", 2, 2, 5, 6)
    'SheetX.$C$3:$H$7 (A1 se zamakne za dve vrstici in stolpca s širino 5 vrstic in 6 stolpcev)
  
V Pythonu

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

OpenRangeSelector

Za izbor obsega lahko uporabite pogovorno okno v ne-modalnem načinu, ki vrne niz z izbranim obsegom.

note

Ta metoda odpre isto pogovorno okno, kot ga uporablja LibreOffice, ko pritisnete gumb Skrči. Primer: pogovorno okno Orodja – Iskanje cilja ima gumb Skrči na desni strani polja Celica s formulo.


Metoda ne spremeni trenutnega izbora.

Skladnja:

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

Parametri:

title: naslov pogovornega okna, podan kot niz.

selection: neobvezen obseg, ki je na začetku izbran, ko se odpre pogovorno okno.

singlecell: če je True (privzeta vrednost), je dovoljeno le izbiranje posameznih celic. Če je False, je dovoljen izbor obsega.

closeafterselect: če ima vrednost True (privzeta vrednost), se pogovorno okno zapre tako po opravljenem izboru. Če je False, lahko uporabnik spremeni izbor, kolikor krat želi, in nato zapre pogovorno okno.

Primer:

V Basicu

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

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

Printf

Vrne vhodni niz po zamenjavi znakov žetonov z njihovimi vrednostmi v danem obsegu.

Metoda ne spremeni trenutnega izbora.

tip

S to metodo lahko hitro izluščite določene dele imena obsega, kot je ime delovnega lista ali stolpec in vrstica prve celice, ter jih uporabite za tvorbo naslova novega obsega.


Skladnja:

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

Parametri:

inputstr: niz z žetoni, ki jih bodo zamenjale ustrezne vrednosti iz obsega range.

range: ime obsega RangeName, iz katerega bodo izluščene vrednosti. Če vsebuje ime delovnega lista, mora ta delovni list obstajati.

tokencharacter: znak, uporabljen za identifikacijo žetonov. Privzeti znak za žeton je »%«. Naslednji žetoni so sprejeti:

Primer:

V Basicu

Spodnji primer vzame vse elemente obsega RangeName, kot ga določa sRange, in jih uporabi za sestavo sporočila.


    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)
  

Metodo Printf lahko kombinirate z metodo SetFormula, da ustvarite formule prek več celic. Za primer vzemimo tabelo z numeričnimi vrednostmi v obsegu "A1:E10", za katero želimo ustvariti formule za vsoto vrednosti v vsaki vrstici posebej in postaviti rezultate v obseg "F1:F10":


    Dim sFormula as String, sRange as String
    sRange = "A1:E10"
    ' Upoštevajte rabo znaka »$«
    sFormula = "=SUM($%C1%R1:$%C2%R1)"
    oDoc.SetFormula("F1:F10", oDoc.Printf(sFormula, sRange))
  
V Pythonu

    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

Ta metoda pošlje vsebino danega delovnega lista privzetemu tiskalniku oz. tiskalniku, določenim z metodo SetPrinter storitve Document.

Vrne True, če je bil delovni list uspešno natisnjen.

Skladnja:

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

Parametri:

sheetname: ime delovnega lista, ki ga želite natisniti, privzeta vrednot je dejavni delovni list.

pages: strani, ki jih želite natisniti, kot niz, tako kot v uporabniškem vmesniku. Primer: »1-4;10;15-18«. Privzeta vrednost je tiskanje vseh strani.

copies: število kopij. Privzeto ima vrednost 1.

Primer:

V Basicu

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

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

RemoveSheet

Odstrani obstoječi delovni list iz dokumenta.

Skladnja:

svc.RemoveSheet(sheetname: str): bool

Parametri:

sheetname: ime delovnega lista, ki ga želite odstraniti.

Primer:

V Basicu

    oDoc.RemoveSheet("SheetY")
  
V Pythonu

    myDoc.RemoveSheet("SheetY")
  

RenameSheet

Preimenuje dani delovni list in vrne True, če uspe.

Skladnja:

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

Parametri:

sheetname: ime delovnega lista, ki ga želite preimenovati.

newname: novo ime delovnega lista. Ne sme še obstajati.

Primer:

Ta primer preimenuje dejavni delovni list v "SheetY":

V Basicu

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

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

SetArray

Shrani dano vrednost od navedene ciljne celice naprej. Posodobljeno področje se širi od ciljne celice ali od levega vrhnjega kota danega obsega naprej, da lahko zagotovi prostor velikosti vhodnega argumenta value. Vektorji se vedno širijo navpično.

Metoda vrne niz, ki predstavlja spremenjeno področje kot obseg celic.

Skladnja:

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

Parametri:

targetcell: celica ali obseg kot niz, od koder naj se začne shranjevati dana vrednost.

value: skalar, vektor ali polje (v Pythonu eno- ali dvodimenzionalni seznami in n-terice) z novimi vrednostmi, ki bodo shranjene od ciljne celice oz. od levega vrhnjega kota obsega, če je ciljna celica targetcell obseg. Nove vrednosti morajo biti nizi, številske vrednosti ali datumi. Druge vrste povzročijo, da se ustrezne celice izpraznijo.

Primer:

V Basicu

Naslednji primer uporablja vgrajeno Funkcijo DimArray za ustvarjanje polja in nato njegovo shranjevanje v celici "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)
  

Primer uporablja metodo RangeInit storitve ScriptForge Array, da ustvari polje z vrednostmi, ki so nato shranjeni od celice "A1" navzdol.


    'Zapolni 1. stolpec z vrednostmi od 1 do 1000
    oDoc.SetArray("Sheet1.A1", SF_Array.RangeInit(1, 1000))
  
V Pythonu

    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

Če želite izmetati celotno vsebino polja na delovni list, uporabite SetArray. Če želite izmetati vsebino polj le v mejah ciljnega obsega celic, uporabite SetValue.


SetValue

Shrani dano vrednost v navedenem obsegu. Velikost spremenjenega področja je enaka velikosti ciljnega področja.

Metoda vrne niz, ki predstavlja spremenjeno področje kot obseg celic.

Skladnja:

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

Parametri:

targetrange: obseg, kjer naj bo shranjena dana vrednost, podan kot niz.

value: skalar, vektor ali polje z novimi vrednostmi za vsako celico obsega. Nove vrednosti morajo biti nizi, številske vrednosti ali datumi. Druge vrste povzročijo, da se ustrezne celice izpraznijo.

Polni obseg se posodobi, preostanek delovnega lista pa ostane nespremenjen. Če je velikost value manjša od velikosti ciljnega obsega targetrange, bodo preostale celice izpraznjene.

Če je velikost value večja od velikosti ciljnega obsega targetrange, se vrednosti value le delno kopirajo, dokler se z njimi ne zapolni velikost targetrange.

Vektorji se širijo navpično, razen če ima ciljni obseg targetrange višino natanko 1 vrstice.

Primer:

V Basicu

    oDoc.SetValue("A1", 2)
    ' Spodaj je polje Value manjše od TargetRange (preostale celice so izpraznjene)
    oDoc.SetValue("A1:F1", Array(1, 2, 3))
    ' Spodaj imata Value in TargetRange enako velikost
    oDoc.SetValue("A1:D2", SF_Array.AppendRow(Array(1, 2, 3, 4), Array(5, 6, 7, 8)))
  

Če želite zapolniti eno samo vrstico z vrednostmi, lahko uporabite funkcijo Offset. Pri spodnjem primeru upoštevajte, da je arrData enodimenzionalno polje:


    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)
  
V Pythonu

    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

Uveljavi navedeni slog celice na danem ciljnem obsegu. Polni obseg se posodobi, preostanek delovnega lista pa ostane nespremenjen. Če slog celice ne obstaja, prikliče napako.

Metoda vrne niz, ki predstavlja spremenjeno področje kot obseg celic.

Skladnja:

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

Parametri:

targetrange: obseg, v katerem bo uporabljen slog, podan kot niz.

style: ime sloga celice, ki bo uporabljen.

Primer:

V Basicu

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

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

SetFormula

Vstavi dano formulo ali polje s formulami v navedeni obseg. Velikost spremenjenega področja je enaka velikosti obsega.

Metoda vrne niz, ki predstavlja spremenjeno področje kot obseg celic.

Skladnja:

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

Parametri:

targetrange: obseg, v katerega bodo vstavljene formule, podan kot niz.

formula: niz, vektor ali polje nizov z novimi formulami za vsako celico v ciljnem obsegu.

Polni obseg se posodobi, preostanek delovnega lista pa ostane nespremenjen.

Če je dana formula niz, se enkratna formula prilepi po celotnem obsegu s prilagoditvami relativnih sklicev.

Če je velikost formule formula manjša od velikosti ciljnega obsega targetrange, bodo preostale celice izpraznjene.

Če je velikost formule formula večja od velikosti ciljnega obsega targetrange, se formule le delno kopirajo, dokler se z njimi ne zapolni velikost targetrange.

Vektorji se vedno širijo navpično, razen če ima ciljni obseg targetrange višino natanko 1 vrstice.

Primer:

V Basicu

    oDoc.SetFormula("A1", "=A2")
    'Vodoravni vektor, delno prazen
    oDoc.SetFormula("A1:F1", Array("=A2", "=B2", "=C2+10"))
    'D2 vsebuje formulo "=H2"
    oDoc.SetFormula("A1:D2", "=E1")
  
V Pythonu

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

ShiftDown

Premakne dani obseg celic navzdol z vstavljanjem praznih vrstic. Na trenutni izbor ne vpliva.

Glede na vrednost argumenta wholerow lahko vstavljene vrstice segajo po širini navedenega obsega ali po vseh stolpcih v vrstici.

Metoda vrne niz, ki predstavlja novo mesto začetnega obsega.

note

Če zamaknjeni obseg presega robove delovnega lista, se ne zgodi nič.


Skladnja:

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

Parametri:

range: obseg, nad katerega bodo vstavljene celice, podan kot niz.

wholerow: če ima vrednost False (privzeta vrednost), bo širina vstavljenih vrstic enaka kot širina navedenega obsega range. Sicer bodo vstavljene vrstice segale čez vse stolpce delovnega lista.

rows: število vrstic, ki bodo vstavljene. Privzeta vrednost je višina izvirnega obsega range. Število vrstic mora biti pozitivno.

Primer:

V Basicu

    ' Premakne obseg "A3:A6" navzdol za eno vrstico; vpliva le na stolpce od A do D
    oDoc.ShiftDown("A3:D3")
    ' Vstavljena vrstica se razteza čez vse stolpce delovnega lista
    oDoc.ShiftDown("A3:D3", WholeRow := True)
    ' Premakne obseg "A3:A6" navzdol za pet vrstic
    oDoc.ShiftDown("A3:D3", Rows := 5)
    ' Premakne obseg "A3:D10" navzdol za dve vrstici in prikaže novo mesto izvornega obsega
    Dim sNewRange as String
    sNewRange = oDoc.ShiftDown("A3:D10", Rows := 2)
    MsgBox sNewRange   ' $Sheet1.$A$5:$D$12
  
V Pythonu

    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

Izbriše vrstice na levem robu danega obsega in premakne vse celice desno od prizadetega obsega na desno. Ne vpliva na trenutni izbor.

Glede na vrednost argumenta wholecolumn lahko izbrisani stolpci segajo po višini navedenega obsega ali po vseh vrsticah v stolpcu.

Ta metoda vrne niz, ki predstavlja mesto preostalega dela začetnega obsega. Če so vse celice iz izbornega obsega izbrisane, potem vrne prazen niz.

Skladnja:

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

Parametri:

range: obseg, v katerem bodo celice izbrisane, podan kot niz.

wholecolumn: če ima vrednost False (privzeta vrednost), bo višina izbrisanih stolpcev enaka kot višina navedenega obsega range. Sicer bodo izbrisani stolpci segali čez vse vrstice delovnega lista.

columns: število stolpcev, ki bodo izbrisani v danem obsegu range. Privzeta vrednost je širina izvirnega obsega range, kar je tudi največja vrednost tega argumenta.

Primer:

V Basicu

    ' Izbriše obseg "B3:B6"; premakne vse celice na desni strani v levo
    oDoc.ShiftLeft("B3:B6")
    ' Izbriše prvi stolpec v obsegu "A3:D6"
    oDoc.ShiftLeft("A3:D6", Columns := 1)
    ' Izbrisani stolpci (od A do D) se raztezajo po vseh vrsticah delovnega lista
    oDoc.ShiftLeft("A3:D6", WholeColumn := True)
  
V Pythonu

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

ShiftUp

Izbriše vrhnje vrstice danega obsega in premakne vse celice pod prizadetim obsegom navzgor. Ne vpliva na trenutni izbor.

Glede na vrednost argumenta wholerow lahko izbrisane vrstice segajo po širini navedenega obsega ali po vseh stolpcih v vrstici.

Ta metoda vrne niz, ki predstavlja mesto preostalega dela začetnega obsega. Če so vse celice iz izbornega obsega izbrisane, potem vrne prazen niz.

Skladnja:

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

Parametri:

range: obseg, v katerem bodo celice izbrisane, podan kot niz.

wholerow: če ima vrednost False (privzeta vrednost), bo širina izbrisanih vrstic enaka kot širina navedenega obsega range. Sicer bodo izbrisane vrstice segale čez vse stolpce delovnega lista.

rows: število vrstic, ki bodo izbrisane v danem obsegu range. Privzeta vrednost je višina izvirnega obsega range, kar je tudi največja vrednost tega argumenta.

Primer:

V Basicu

    ' Izbriše obseg "A3:D3"; premakne vse celice pod njim za eno vrstico navzgor
    oDoc.ShiftUp("A3:D3")
    ' Izbriše prvo vrstico v obsegu "A3:D6"
    oDoc.ShiftUp("A3:D6", Rows := 1)
    ' Izbrisana vrstica sega po vseh stolpcih delovnega lista
    oDoc.ShiftUp("A3:D6", WholeRow := True)
  
V Pythonu

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

ShiftRight

Premakne dani obseg celic desno z vstavljanjem praznih stolpcev. Na trenutni izbor ne vpliva.

Glede na vrednost argumenta wholecolumn lahko vstavljeni stolpci segajo po širini navedenega obsega ali po vseh vrsticah v stolpcu.

Metoda vrne niz, ki predstavlja novo mesto začetnega obsega.

note

Če zamaknjeni obseg presega robove delovnega lista, se ne zgodi nič.


Skladnja:

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

Parametri:

range: obseg, na katerega levo stran bodo vstavljeni prazni stolpci, kot niz.

wholecolumn: če ima vrednost False (privzeta vrednost), bo višina vstavljenih stolpcev enaka kot višina navedenega obsega range. Sicer bodo vstavljeni stolpci segali čez vse vrstice delovnega lista.

columns: število stolpcev, ki jih želite vstaviti. Privzeta vrednost je širina izvornega obsega range.

Primer:

V Basicu

    ' Premakne obseg "A3:A6" desno za en stolpec; vpliva le na vrstice od 3 do 6
    oDoc.ShiftRight("A3:A6")
    ' Premakne obseg "A3:A6" desno za pet stolpcev
    oDoc.ShiftRight("A3:A6", Columns := 5)
    ' Vstavljeni stolpec sega čez vse vrstice delovnega lista
    oDoc.ShiftRight("A3:A6", WholeColumn := True)
  
V Pythonu

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

SortRange

Razvrsti dani obseg glede na 3 stolpce/vrstice. Vrstni red razvrščanja se lahko razlikuje po stolpcih/vrsticah. Vrne niz, ki predstavlja spremenjeni obseg celic. Velikost spremenjenega področja je povsem določen z velikostjo izvornega področja.

Skladnja:

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

Parametri:

range: obseg, ki naj bo razvrščen, podan kot niz.

sortkeys: skalar (če predstavlja 1 stolpec/vrstico) ali polje številk stolpcev/vrstic s pričetkom z 1. Največje število ključev je 3.

sortorder: skalar ali polje nizov, ki vsebujejo vrednosti "ASC" (naraščajoče), "DESC" (padajoče) ali "" (sledi privzeti vrednosti, torej naraščajoče). Vsak element je v paru z ustreznim elementom v sortkeys. Če je polje sortorder krajše od sortkeys, so preostali ključi razvrščeni v naraščajočem vrstnem redu.

destinationcell: ciljna celica za razvrščeni obseg celic, kot niz. Če je podan obseg, se obravnava le njegova leva vrhnja celica. Privzeto prepiše vir Range.

containsheader: če je True, prva vrstica/stolpec ni razvrščen.

casesensitive: razločevanje med malimi in velikimi črkami, le za primerjavo nizov (privzeta vrednost je False).

sortcolumns: če je True, so stolpci razvrščeni od leve proti desni. Privzeto = False: vrstice so razvrščene od vrha navzdol.

Primer:

V Basicu

    'Razvrsti obseg glede na stolpca A (naraščajoče) in C (padajoče)
    oDoc.SortRange("A2:J200", Array(1, 3), Array("ASC", "DESC"), CaseSensitive := True)
  
V Pythonu

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

Vsi podprogrami ali identifikatorji ScriptForge Basic s predpono podčrtaja (»_«) so rezervirani za interno uporabo. Uporabi v makrih Basic ali skriptih Python niso namenjeni.


Podprite nas!