Vsebina

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

- ravnanje z delovnimi listi v dokumentu Calc (kopiraj, vstavi, premakni itn.);

- izmenjavo podatkov med podatkovnimi strukturami Basica in obsegi programa Calc;

- kopiranje in uvažanje ogromnih količin podatkov.

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:

• 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 navedbo imena okna za 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.

Instanco storitve Calc lahko tvorite tudi z uporabo dokumenta, na katerega se sklicuje ThisComponent. To je še posebej uporabno, ko zaganjate makro iz samega razvojnega okolja IDE Basic.

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

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

        bas = CreateScriptService("Basic")
        myDoc = CreateScriptService("Calc", bas.ThisComponent)

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:

- V določeni instanci storitve Calc so delovni listi in obsegi podani kot »Sheet1« in »D2:F6«.

- Poleg tega lastnosti .Sheet in .Range vrneta sklic, ki je lahko uporabljen kot argument metode, klicane iz druge instance storitve Calc.

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

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 Cmd + *krmilka + * 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.

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 ImportStylesFromFile InsertSheet Intersect MoveRange MoveSheet Offset | OpenRangeSelector PrintOut Printf RemoveDuplicates RemoveSheet RenameSheet SetArray SetCellStyle SetFormula SetValue 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

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

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.

- Če je podan le argument sheetname, vrne ničelno polje nizov z imeni vseh grafikonov.

- Če je podano ime grafikona kot parameter chartname, potem vrne posamezni predmet, ki ustreza želenemu grafikonu. Navedeni grafikon mora obstajati.

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

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.

Določite lahko formulo filtra, ki določa, na katere celice naj vpliva.

### Skladnja:

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

### Parametri:

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

filterformula: formula programa Calc, ki deluje na danem obsegu in določa, na katere celice bo vplivalo. Navedena formula mora vrniti True ali False. Če ta argument ni naveden, bo vplivalo na vse celice v obsegu.

filterscope: določa, kako se filterformula širi na dani obseg. Ta argument je obvezen, če je določena formula filterformula. Sprejema naslednje vrednosti:

- "CELL": formula, navedena v argumentu filterformula, se širi enkrat za vsako celico v obsegu range.

- "ROW": formula, navedena v argumentu filterformula, se širi enkrat za vsako vrstico v obsegu range.

- "COLUMN": formula, navedena v argumentu filterformula, se širi enkrat za vsak stolpec v obsegu range.

### Primer:

##### V Basicu

        ' Počisti vse celice v obsegu DelovniListX.A1:J10
        oDoc.ClearAll("DelovniListX.A1:J10")
        ' Počisti vse celice v obsegu DelovniListX.A1:J10, ki imajo vrednost, večjo od 100
        oDoc.ClearAll("DelovniListX.A1:J10", "=DelovniListX.A1>100", "CELL")
        ' Počisti vse vrstice v obsegu DelovniListX.A1:J10, katerih vsota je večja od 500
        oDoc.ClearAll("DelovniListX.A1:J10", "=SUM(DelovniListX.A1:J1)>100", "ROW")
        ' Počisti stolpce v obsegu DelovniListX.A1:J10, katerih vsota je večja od 500
        oDoc.ClearAll("DelovniListX.A1:J10", "=SUM(DelovniListX.A1:A10)>100", "COLUMN")

##### V Pythonu

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

## ClearFormats

Počisti oblikovanje in sloge v podanem obsegu.

Določite lahko formulo filtra, ki določa, na katere celice naj vpliva.

### Skladnja:

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

### Parametri:

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

filterformula: formula programa Calc, ki deluje na danem obsegu in določa, na katere celice bo vplivalo. Navedena formula mora vrniti True ali False. Če ta argument ni naveden, bo vplivalo na vse celice v obsegu.

filterscope: določa, kako se filterformula širi na dani obseg. Ta argument je obvezen, če je določena formula filterformula. Sprejema naslednje vrednosti:

- "CELL": formula, navedena v argumentu filterformula, se širi enkrat za vsako celico v obsegu range.

- "ROW": formula, navedena v argumentu filterformula, se širi enkrat za vsako vrstico v obsegu range.

- "COLUMN": formula, navedena v argumentu filterformula, se širi enkrat za vsak stolpec v obsegu range.

### Primer:

##### V Basicu

          oDoc.ClearFormats("SheetX.*")

##### V Pythonu

        myDoc.ClearFormats("SheetX.*")

Glejte dokumentacijo metode ClearAll, kjer najdete primere za uporabo argumentov filterformula in filterscope.

## ClearValues

Počisti vrednosti in formule v podanem obsegu.

Določite lahko formulo filtra, ki določa, na katere celice naj vpliva.

### Skladnja:

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

### Parametri:

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

filterformula: formula programa Calc, ki deluje na danem obsegu in določa, na katere celice bo vplivalo. Navedena formula mora vrniti True ali False. Če ta argument ni naveden, bo vplivalo na vse celice v obsegu.

filterscope: določa, kako se filterformula širi na dani obseg. Ta argument je obvezen, če je določena formula filterformula. Sprejema naslednje vrednosti:

- "CELL": formula, navedena v argumentu filterformula, se širi enkrat za vsako celico v obsegu range.

- "ROW": formula, navedena v argumentu filterformula, se širi enkrat za vsako vrstico v obsegu range.

- "COLUMN": formula, navedena v argumentu filterformula, se širi enkrat za vsak stolpec v obsegu range.

### Primer:

##### V Basicu

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

##### V Pythonu

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

Glejte dokumentacijo metode ClearAll, kjer najdete primere za uporabo argumentov filterformula in filterscope.

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

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

Funkcije Calc, uporabljene v argumentu filterformula, morajo biti izražene s svojim angleškim imenom. Slednje v slovenski inačici vmesnika programa niso prevedene, torej gre za ista imena kot v slovenskem vmesniku. Seznam vseh funkcij z njihovimi imeni najdete na wiki-strani List of Calc Functions (v angl.).

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

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

Funkcije Calc, uporabljene v formuli, navedeni v argumentu filterformula, morajo biti izražene s svojim angleškim imenom. Slednje v slovenski inačici vmesnika programa niso prevedene, torej gre za ista imena kot v slovenskem vmesniku. Seznam vseh funkcij z njihovimi imeni najdete na wiki-strani List of Calc Functions (v angl.).

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

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

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

- Če je višina (ali širina) ciljnega področja > 1 vrstice (ali stolpca), potem mora biti višina (ali širina) izvornega obsega <= višine (ali širine) ciljnega področja. Sicer se ne zgodi nič.

- Če je višina (ali širina) cilja enaka 1, potem se cilj razširi navzdol (oz. desno) vse do višine (ali širine) izvornega obsega.

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"

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)

Č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, ne upoštevajoč vrednosti iz filtriranih in skritih vrstic ter skritih stolpcev, enako kot za funkcije vrstice stanja.

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

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.

Ta metoda vrne True, če je shranjevanje ciljne datoteke uspelo.

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:

- Ničelno polje (par v Pythonu) z imeni vseh obrazcev, vsebovanih v danem delovnem listu (če ni podan argument form).

- Instanca storitve SFDocuments.Form, ki predstavlja obrazec, naveden v argumentu.

### 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 ... 16384.

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

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

## GetFormula

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

Funkcije Calc so v vrnjenih formulah izražene s svojim angleškim imenom. Slednje v slovenski inačici vmesnika programa niso prevedene, torej gre za ista imena kot v slovenskem vmesniku. Seznam vseh funkcij z njihovimi imeni najdete na wiki-strani List of Calc Functions (v angl.).

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

Č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:

- Vhodna datoteka ima kodiranje UTF8.

- Ločilo polj je vejica, podpičje ali tabulator.

- Ločilo nizov je dvojni narekovaj (").

- Vse vrstice so vključene.

- Nizi v navedkih so oblikovani kot besedilo.

- Posebna števila so zaznana.

- Za vse stolpce velja domneva, da so besedila, razen če so vrednosti prepoznane kot veljavna števila.

- Jezik je angleški (ZDA), kar nakazuje, da je ločilo decimalk "." in ločilo tisočic ",".

### Primer:

##### V Basicu

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

##### V Pythonu

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

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

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

### ImportStylesFromFile

Ta metoda naloži vse sloge, ki pripadajo eni ali več družin slogov iz zaprte datoteke v dejanski dokument. Slednji mora biti dokument programa Calc ali Writer.

Vedno so uvoženi skupaj:

- ParagraphStyles in CharacterStyles

- NumberingStyles in ListStyles

Vrne True, če so bili slogi uspešno uvoženi.

### Skladnja:

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

### Parametri:

filename: ime datoteke, iz katere se naložijo slogi, v notaciji FileSystem. Za to datoteko se predvideva, da je iste vrste kot dejanski dokument.

families: ena od družin slogov, prisotna v dejavnem dokumentu, podana kot niz, v katerem se ločuje med malimi in velikimi črkami, ali kot polje takšnih nizov. Če želite uvoziti vse družine, pustite ta argument prazen.

overwrite: če je True, bo možno prepisati trenutne sloge (privzeta vrednost je False).

### Primer:

##### V Basicu

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

##### V Pythonu

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

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

## Intersect

Vrne niz, ki predstavlja presek med vhodnima obsegoma ali niz ničelne dolžine, kadar je presek prazen.

### Skladnja:

svc.Intersect(range1:str, range2: str): str

### Parametri:

range1: naslovni niz obsega 1.

range2: naslovni niz obsega 2.

### Primer:

Naslednji primer preseka dva obsega in vrne skupni obseg med njima.

##### V Basicu

        Dim commonrange As String
        commonrange = oDoc.Intersect("A1:D8", "C3:F4")
        Print commonrange ' izpiše "$DelovniList1.$C$3:$D$4"

##### V Pythonu

        common_range = myDoc.Intersect("A1:D8", "C3:F4")
        print(common_range)  # izpiše '$DelovniList1.$C$3:$D$4' v lupino Python

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

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.

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:

- %S: ime delovnega lista, ki vsebuje obseg, vključno z enojnimi narekovaji, če so potrebni.

- %R1: številka vrstice leve vrhnje celice obsega.

- %C1: črka stolpca leve vrhnje celice obsega.

- %R2: številka vrstice desne spodnje celice obsega.

- %C2: črka stolpca desne spodnje celice obsega.

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

## RemoveDuplicates

Odstrani podvojene vrstice iz navedenega obsega. Primerjava za določanje, ali je dana vrstica podvojena, se opravi glede na podmnožico stolpcev v obsegu.

Metoda vrne niz, ki vsebuje obseg z rezultatom.

Odstranjevanje podvojenih vrstic se opravi od prve vrstice obsega navzdol, kar pomeni, da če sta dve ali več vrstic dvojnika, obdrži le prvo vrstico.

### Skladnja:

svc.RemoveDuplicates(range: str, opt columns: int[0..*], header: bool = False, casesensitive: bool = False, mode: str = "COMPACT"): str

### Parametri:

range: obseg, v katerem bodo dvojniki izbrisani, podano kot niz.

columns: polje, ki vsebuje številke stolpcev, ki nakazujejo, kateri stolpci bodo upoštevani za določitev, ali vrstica dvojnik ali ne. Če ta argument pustite prazen, se uporabi le prvi stolpec. Elementi v tej matriki morajo biti v intervalu med 1 in širino obsega.

header: določa, ali je prva vrstica naslovna (privzeta vrednost je False).

casesensitive: določa razločevanje med malimi in velikimi črkami pri primerjavi nizov (privzeta vrednost je False).

mode: določa, kaj storiti s podvojenimi vrsticami. Če je mode = "CLEAR", se dvojniki enostavno odstranijo z delovnega lista, tako da ostanejo celice prazne. Če je mode = "COMPACT", se dvojniki odstranijo in prazne vrstice se strnejo navzgor (privzeta vrednost je "COMPACT").

### Primer:

##### V Basicu

        ' Odstrani podvojene vrstice, pri katerih je vrednost v stolpcu A podvojena
        ' Upoštevajte, da imajo vsi neobvezni argumenti svojo privzeto vrednost
        oDoc.RemoveDuplicates("A1:B10")
        ' Odstrani podvojene vrstice, upoštevajoč, da prva vrstica vsebuje naslove
        ' Stolpca A in B uporabi za določanje, ali je vrstica dvojnik
        ' Celice, ki vsebujejo podvojene vrednosti, pusti prazne
        oDoc.RemoveDuplicates("A1:D10", columns := Array(1, 2), header := True, mode := "CLEAR")

##### V Pythonu

        myDoc.RemoveDuplicates("A1:B10")
        myDoc.RemoveDuplicates("A1:D10", columns = (1, 2), header = True, mode = "CLEAR")

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

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

## 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, opt filterformula: str, opt filterscope: str): str

### Parametri:

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

style: ime sloga celice, ki bo uporabljen.

filterformula: formula programa Calc, ki deluje na danem obsegu in določa, na katere celice bo vplivalo. Navedena formula mora vrniti True ali False. Če ta argument ni naveden, bo vplivalo na vse celice v obsegu.

filterscope: določa, kako se filterformula širi na dani obseg. Ta argument je obvezen, če je določena formula filterformula. Sprejema naslednje vrednosti:

- "CELL": formula, navedena v argumentu filterformula, se širi enkrat za vsako celico v obsegu range.

- "ROW": formula, navedena v argumentu filterformula, se širi enkrat za vsako vrstico v obsegu range.

- "COLUMN": formula, navedena v argumentu filterformula, se širi enkrat za vsak stolpec v obsegu range.

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

Glejte dokumentacijo metode ClearAll, kjer najdete primere za uporabo argumentov filterformula in filterscope.

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

Funkcije Calc, uporabljene v argumentu formula, morajo biti izražene s svojim angleškim imenom. Slednje v slovenski inačici vmesnika programa niso prevedene, torej gre za ista imena kot v slovenskem vmesniku. Seznam vseh funkcij z njihovimi imeni najdete na wiki-strani List of Calc Functions (v angl.).

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

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

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

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

Č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 poljubno število stolpcev/vrstic. Vrstni red razvrščanja se lahko razlikuje po stolpcih/vrsticah. Če je število razvrstitvenih ključev večje od 3, se obseg razvrsti večkrat, v skupinah s po tremi ključi, začenši z zadnjim ključem. 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.

sortorder: skalar ali polje nizov, ki vsebujejo vrednosti "ASC" (naraščajoče), "DESC" (padajoč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)

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

Podobne teme

Storitev SFDocuments.Chart

Storitev SFDocuments.Document

Storitev ScriptForge.UI

Podprite nas!