Storitev SFDocuments.Calc

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

Nekatere metode so generične za vse vrste dokumentov in se dedujejo iz storitve Document, medtem ko so druge metode specifične za modul SF_Calc.

Modul SF_Calc se osredotoča na:

Priklic storitve

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

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

    myDoc = svcUI.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 = svcUI.OpenDocument(r"C:\Documents\FileA.ods", hidden = True, readonly = True)
    docB = svcUI.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 (privzeto = aktivni delovni list). Obsegajoči enojni narekovaji in znaki $ so dovoljeni, vendar so prezrti.

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

Opis

CurrentSelection

Ne

Brez

Niz ali polje nizov

Enojni izbrani obseg kot niz ali seznam izbranih obsegov kot polje

Height

Da

ImeObsega As String

Long

Število vrstic (>= 1) v danem obsegu

LastCell

Da

ImeDelovnegaLista As String

String

Nazadnje uporabljena celica v zapisu 'A1' na danem delovnem listu

LastColumn

Da

ImeDelovnegaLista As String

Long

Nazadnje uporabljen stolpec v danem delovnem listu

LastRow

Da

ImeDelovnegaLista As String

Long

Nazadnje uporabljena vrstica v danem delovnem listu

Range

Da

ImeObsega As String

Object

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

Sheet

Da

ImeDelovnegaLista As String

Object

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

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

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 in XSpreadsheet.


Metode

Seznam metod v storitvi Calc

Activate
ClearAll
ClearFormats
ClearValues
CopySheet
CopySheetFromFile
CopyToCell
CopyToRange
DAvg
DCount

DMax
DMin
DSum
Forms
GetColumnName
GetFormula
GetValue
ImportFromCSVFile
ImportFromDatabase
InsertSheet

MoveRange
MoveSheet
Offset
RemoveSheet
RenameSheet
SetArray
SetValue
SetCellStyle
SetFormula
SortRange


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

    svcUI = CreateScriptService("UI")
    myDoc = svcUI.GetDocument(svcUI.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.


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

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 = svcUI.OpenDocument(r"C:\Documents\FileA.ods", hidden = True, readonly = True)
    docB = svcUI.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 = svcUI.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 = svcUI.OpenDocument(r"C:\Documents\FileA.ods", hidden = True, readonly = True)
    docB = svcUI.OpenDocument(r"C:\Documents\FileB.ods")
    docB.CopyToRange(docA.Range("SheetX.A1:F10"), "SheetY.C5:J5")
  

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.


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("DelovniList1")
    Set FormA = oDoc.Forms("DelovniList1", "Obrazec_A")
  
V Pythonu

    form_names = doc.Forms("DelovniList1")
    form_A = oDoc.Forms("DelovniList1", "Obrazec_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

    sBasic = CreateScriptService("Basic")
    sBasic.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, si oglejte wiki stran Filter Options (v angl.).


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)
  

RemoveSheet

Odstrani obstoječi delovni list iz dokumenta.

Skladnja:

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

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 niso namenjeni.


Podprite nas!