Tenesta SFDocuments.Calc

Innhald
Innhaldsliste 🔎︎

# Tjenesten SFDocuments.Calc

Biblioteket SFDocuments gjev mange metodar og eigenskapar som letter styringa og handsaminga av LibreOffice Calc-dokument.

Nokre metodar er felles for alle typar dokument og er nedarva frå tenesta Document, medan andre metodar er spesifikke for modulen SF_Calc.

Modulen SF_Calc er fokusert på:

- Handsaming av ark i eit Calc-dokument (kopiera, setja inn, flytta osv.)

- Dataudveksling mellom Basic data-strukturar og Calc-område

- Kopiering og import av enorme datamengder

## Oppkall av tenester

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

##### I Basic

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

        Set oDoc = CreateScriptService("Calc")

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

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

Eller med metoden OpenDocument frå tenesta UI:

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

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

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

I eksempelet ovanfor er «MiFil.ods» namnet på eit opna dokumentvindauge. Viss dette argumentet ikkje er gjeve, vert det aktive vindauget vurdert brukt.

Det vert tilrådd å frigje ressursar etter bruk:

        Set oDoc = oDoc.Dispose()

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

##### I Python

        myDoc = CreateScriptService("Calc")

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

        myDoc = svcUI.OpenDocument(r"C:\Documents\MyFile.ods")

        myDoc = CreateScriptService("SFDocuments.Calc", "MyFile.ods")
        myDoc.Dispose()

Bruk av prefikset «SFDocuments.» ved oppkall av tenesta er frivillig.

## Definisjonar

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

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

- Innføre ein spesifikk Calc-førekomst, er ark og område gjevne som strengar som «Ark1» og «D2:F6».

- I tillegg returnerer eigenskapane .Sheet og .Range ein referanse som kan brukast som argument i ein metode som vert kalla opp frå ein annan førekomst av tenesta Calc.

### Eksempel:

Eksempelet nedanfor kopierer data frå dokument A (opna skriveverna og gøymd) til dokument B.

##### I Basic

        Dim oDocA As Object, oDocB As Object
        Set oDocA = ui.OpenDocument("C:\Documents\FileA.ods", Hidden := True, ReadOnly := True)
        Set oDocB = ui.OpenDocument("C:\Documents\FileB.ods")
        oDocB.CopyToRange(oDocA.Range("SheetX.D4:F8"), "D2:F6") 'CopyToRange(source, target)

##### I Python

        docA = 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

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

Snarvegen «~» (tilde) representerer det gjeldande arket.

### RangeName

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

Snarvegen «~» (tilde) representerer den gjeldande markeringa eller det første området, viss det er markert fleire område.

Snarvegen «*» (stjerne) representerer alle brukte celler.

Arknamnet er valfritt i eit område (standard = det aktive arket). Omkringliggjande enkelt sitatteikn og $-teikn er tillatne, men vert ignorerte.

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

Eksempel på gyldige område
1) '$ArkX'.D2 2) $D$2 | Ei enkelt celle
1) '$ArkX'.D2:F6 2) D2:D10 | Enkelt område med fleire celler
'$ArkX'.* | Alle brukte celler i det gjevne arket
1) '$ArkX'.A:A kolonne A) 2) 3:5 (radene 3 til 5) | Alle celler i samanhengande kolonnar eller rader opp til den sist brukte cella
mittOmråde | Eit område med namnet «mittOmråde» på reknearknivå
1) ~eitOmråde 2) ArkX.eitOmråde | Eit områdenamn på arknivå
mittDok.Område("ArkX.D2:F6") | Eit område innanfor arket SheetX i fila knytt til myDoc Calc-førekomsten
~.~ eller ~ | Den gjeldande markeringa på det aktive arket

## Eigenskapar

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

Eigenskapane som er spesielt tilgjengelege for Calc-dokument er:

Namn | Skriveverna | Argument | Type | Beskriving
CurrentSelection | Nei | Ingen | Streng eller ei matrise av strengar | Det merkte enkeltområdet som ein streng eller lista over merkte område som ei matrise
Height | Ja | Områdenamn som streng | Long | Talet på rader (>= 1) i det gjevne området
LastCell | Ja | Arknamn som streng | String | Den sist brukte cella i 'A1'-format på det gjevne arket
LastColumn | Ja | Arknamn som streng | Long | Den sist brukte kolonnen på det gjevne arket
LastRow | Ja | Arknamn som streng | Long | Den sist brukte rada i det gjevne arket
Range | Ja | Områdenamn som streng | Object | Ein områdereferanse som kan brukast som argument av metodar som CopyToRange
Sheet | Ja | Arknamn som streng | Object | Ein områdereferanse som kan brukast som argument av metodar som CopySheet
Sheets | Ja | Ingen | Matrise av strengar | Lista med namna på alle arka som finst
Width | Ja | Områdenamn som streng | Long | Talet på kolonnar (>= 1) i det gjevne området
XCellRange | Ja | Områdenamn som streng | Object | Eit com.sun.star.Table.XCellRange UNO-objekt
XSpreadsheet | Ja | Arknamn som streng | Object | Eit com.sun.star.sheet.XSpreadsheet UNO-objekt

Besøk LibreOffice API Documentation si nettside for å læra meir om XCellRange og XSpreadsheet UNO-objekt.

## Metodar

Liste over metodar i tenesta 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

Viss argumentet SheetName finst, er det gjevne arket aktivert og vert det gjeldande arket. Viss argumentet ikkje finst, vert dokumentvindauget slått på.

### Syntaks:

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

### Parametrar:

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

### Eksempel:

Eksempelet nedanfor aktiverer arket med namnet «Ark4» i det gjeldande dokumentet.

##### I Basic

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

##### I Python

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

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

## ClearAll

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

### Syntaks:

svc.ClearAll(range: str)

### Parametrar:

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

### Eksempel:

##### I Basic

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

##### I Python

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

## ClearFormats

Ryddar format og stilar i det gjevne området.

### Syntaks:

svc.ClearFormats(range: str)

### Parametrar:

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

### Eksempel:

##### I Basic

          oDoc.ClearFormats("SheetX.*")

##### I Python

        myDoc.ClearFormats("SheetX.*")

## ClearValues

Ryddar verdiane og formlane i det gjevne området.

### Syntaks:

svc.ClearValues(range: str)

### Parametrar:

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

### Eksempel:

##### I Basic

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

##### I Python

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

## CopySheet

Kopierer eit bestemt ark før eit eit ark som finst frå før eller i slutten av lista over ark. Det arket som skal kopierast, kan vera inne i kva ope Calc-dokument som helst. Returnerer Sann viss vellukka.

### Syntaks:

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

### Parametrar:

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

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

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

### Eksempel:

##### I Basic

Dette eksempelet lagar ein kopi av arket «ArkX» og plasserer det som det siste arket i det gjeldande dokumentet. Namnet på det kopierte arket er «ArkY».

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

Eksemplet nedanfor kopierer «ArkX» frå «FilA.ods» og limer det inn ved siste plassering av «FilB.ods» med namnet «ArkY»:

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

##### I Python

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

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

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

## CopySheetFromFile

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

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

### Syntaks:

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

### Parametrar:

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

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

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

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

### Eksempel:

Det neste eksempelet kopierer «ArkX» frå «miFil.ods» og set det inn som «ArkY» først i det dokumentet som er referert til som «oDoc».

##### I Basic

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

##### I Python

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

## CopyToCell

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

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

Kjeldeområdet kan høyra til eit anna opna dokument.

### Syntaks:

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

### Parametrar:

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

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

### Eksempel:

##### I Basic

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

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

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

        Dim ui as Variant : ui = CreateScriptService("UI")
        Dim oDocSource As Object, oDocDestination As Object
        ' Opna kjeldedokument i bakgrunnen (gøymd)
        Set oDocSource = ui.OpenDocument("C:\SourceFile.ods", Hidden := True, ReadOnly := True)
        Set oDocDestination = CreateScriptService("Calc")
        oDocDestination.CopyToCell(oDocSource.Range("Sheet1.C2:C4"), "SheetT.A5")
        ' Ikkje gløym å lukka kjeldedokumentet fordi det vart opna som gøymd
        oDocSource.CloseDocument()

##### I Python

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

For å simulera «Kopier/Lim inn» frå eit område til eienkelt celle, brukar du CopyToCell. For å simulera «Kopier/Lim inn» frå eit område til eit større område (med dei same cellene kopierte fleire gongar) brukar du CopyToRange.

## CopyToRange

Kopierer eit gjeve kjeldeområde nedover og/eller mot høgre (verdiar, formlar og format) til eit målområde. Metoden imiterer verkemåten til ein «Kopier/Lim inn»-operasjon frå eit kjeldeområde til eit større målområde.

- Viss høgda (eller breidda) på målområdet er > 1 rad (eller kolonne), må høgda (eller breidda) på kjelda vera <= høgda (eller breidda) på målet. Elles skjer det ingenting.

- Viss høgda (eller breidda) på målområdet er = 1 , vert målet utvida nedover (eller mot høgre) opp til høgda (eller breidda) på kjeldeområdet.

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

Kjeldeområdet kan høyra til eit anna opna dokument.

### Syntaks:

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

### Parametrar:

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

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

### Eksempel:

##### I Basic

Kopiera innføre det same dokumentet:

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

Kopiera frå éi fil til ei anna:

        Dim oDocA As Object : Set oDocA = ui.OpenDocument("C:\Documents\FileA.ods", Hidden := True, ReadOnly := True)
        Dim oDocB As Object : Set oDocB = ui.OpenDocument("C:\Documents\FileB.ods")
        oDocB.CopyToRange(oDocA.Range("SheetX.A1:F10"), "SheetY.C5:J5")

##### I Python

        doc.CopyToRange("ArkX.A1:F10", "ArkY.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

Bruk funksjonane Gjennomsnitt, Tal på, Maks, Min og Summer respektive på alle cellene som inneheld talverdiar i eit gjeve område.

### Syntaks:

svc.DAvg(range: str): float

svc.DCount(range: str): float

svc.DMax(range: str): float

svc.DMin(range: str): float

svc.DSum(range: str): float

### Parametrar:

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

### Eksempel:

Eksempelet nedanfor brukar funktsjnen Sum på området «A1:A1000» i det gjeldande arket.

##### I Basic

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

##### I Python

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

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

## Forms

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

- Ei null-basert matrise (eller Tuple i Python) med namna på alle skjemaa i eit gjeve dokument (viss argumentet form manglar)

- Eit eksemplar av tenesta SFDocuments.Form representerer skjemaet, spesifisert som eit argument.

### Syntaks:

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

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

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

### Parametrar:

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

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

### Eksempel:

I dei neste eksempla får den første linja namna på alle skjemaa som er lagra i «Ark1» og den anden linje hentar objektet Form frå skjemaet med namnet «Skjema_A», som er lagra i «Ark1».

##### I Basic

        Set skjemanamna = oDoc.Forms("Ark1")
        Set SkjemaA = oDok.Forms("Ark1", "Skjema_A")

##### I Python

        skjemanamna = oDoc.Forms("Ark1")
        SkjemaA = oDok.Forms("Ark1", "Skjema_A")

## GetColumnName

Konverterer eit kolonnenummerområde mellom 1 og 1024 til dei tilsvarande bokstavane (kolonne 'A', 'B', …, 'AMJ'). Viss det gjevne kolonnenummeret er utanfor det tillate området, vert det returnert ein null-lengde streng.

### Syntaks:

svc.GetColumnName(columnnumber: int): str

### Parametrar:

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

### Eksempel:

##### I Basic

Viser eit meldingsfelt med namnet på den tredje kolonnen, standard er «C».

        MsgBox oDoc.GetColumnName(3)

##### I Python

        sBasic = CreateScriptService("Basic")
        sBasic.MsgBox(myDoc.GetColumnName(3))

Det høgste talet på kolonnar tillatne i eit Calc-ark er 1024.

## GetFormula

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

### Syntaks:

svc.GetFormula(range: str): any

### Parametrar:

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

### Eksempel:

##### I Basic

Det neste eksempelet returnere ei 3 × 2 matrise med formlar i området «A1:B3» (3 rader gonge 2 kolonnar):

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

##### I Python

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

## GetValue

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

### Syntaks:

svc.GetValue(range: str): any

### Parametrar:

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

### Eksempel:

##### I Basic

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

##### I Python

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

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

## ImportFromCSVFile

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

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

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

### Syntaks:

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

### Parametrar:

filnamn: Identifiserer fila som skal opnast. Namnet må følgja notasjonen SF_FileSystem.FileNaming .

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

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

- Teiknsettet i inndatafila er UTF8.

- Felt-skiljeteiknet er eit komma, eit semikolon eller eit tabulatorteikn.

- Strengskiljeteiknet er det doble sitatteiknet (").

- Alle linjer er inkluderte.

- Strengar med sitatteikn er formaterte som tekst.

- Spesielle tal vert oppdaga.

- Alle kolonnar vert sett på som tekstar, bortsett viss dei vert kjende att som gyldige tal.

- Språket er engelsk/amerikansk, noko som betyr at desimalskiljeteikn er '.' og tusenskiljeteikn er ','.

### Eksempel:

##### I Basic

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

##### I Python

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

Du kan læra meir om innstillingane for CSV-filter i Filter Options Wiki page.

## ImportFromDatabase

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

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

Metoden returnerer Sann når han lukkast.

### Syntaks:

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

### Parametrar:

filnamn: Identifiserer fila som skal opnast. Namnet må følgja notasjonen SF_FileSystem.FileNaming .

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

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

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

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

### Eksempel:

##### I Basic

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

##### I Python

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

## InsertSheet

Set inn eit nytt tomt ark framføre eit ark som finst frå før eller sist i lista over ark.

### Syntaks:

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

### Parametrar:

arknamn: Namnet på det nye arket.

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

### Eksempel:

Det neste eksempelet set inn eit nytt, tomt ark med namnet «ArkX» framføre «ArkY»:

##### I Basic

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

##### I Python

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

## MoveRange

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

### Syntaks:

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

### Parametrar:

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

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

### Eksempel:

##### I Basic

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

##### I Python

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

## MoveSheet

Flyttar eit eksisterande ark og plasserer det framføre eit spesifisert ark eller på slutten av lista over ark.

### Syntaks:

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

### Parametrar:

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

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

### Eksempel:

Eksempelet nedanfor flytter det eksisterande «ArkX» og set det framføre «ArkY»:

##### I Basic

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

##### I Python

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

## Offset

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

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

### Syntaks:

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

### Parametrar:

referanse: Området, som ein streng, som metoden vil bruka som referanse til å utføra forskyvingsoperasjonen.

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

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

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

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

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

Argumenta høgd og breidd kan ikkje resultera i null eller eit negativt tal på rader eller kolonnar.

### Eksempel:

##### I Basic

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

##### I Python

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

## RemoveSheet

Fjernar eit ark frå dokumentet.

### Syntaks:

svc.RemoveSheet(sheetname: str): bool

### Parametrar:

arknamn: Namnet på arket som skal fjernast.

### Eksempel:

##### I Basic

        oDoc.RemoveSheet("SheetY")

##### I Python

        myDoc.RemoveSheet("SheetY")

## RenameSheet

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

### Syntaks:

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

### Parametrar:

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

nyttnamn: Det nye arknamnet. Namnet må ikkje finnast frå før.

### Eksempel:

I dette eksempelet endrar du namnet på det aktive arket til «ArkY»:

##### I Basic

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

##### I Python

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

## SetArray

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

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

### Syntaks:

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

### Parametrar:

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

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

### Eksempel:

##### I Basic

Det meste eksempelet brukar den innebygde funksjonen DimArray for å laga ei matrise og lagra ho i cella «A1».

        Dim arrData as Variant
        arrData = DimArray(2, 1)
        arrData(0, 0) = 1 : arrData(1, 0) = 2 : arrData(2, 0) = 3
        arrData(0, 1) = "One" : arrData(1, 1) = "Two" : arrData(2, 1) = "Three"
        oDoc.SetArray("Sheet1.A1", arrData)

Dette eksempelet brukar metoden RangeInit frå ScriptForge Array service for å laga ei matrise med verdiar som vert lagra frå cella «A1» og nedover.

        ' Fyll første kolonne med verdiar frå 1 til 1000
        oDoc.SetArray("Sheet1.A1", SF_Array.RangeInit(1, 1000))

##### I Python

        arrData = ((1, "One"), (2, "Two"), (3, "Three"))
        myDoc.SetArray("Sheet1.A1", arrData)

        myDoc.SetArray("Sheet1.A1", tuple(i + 1 for i in range(1000)))

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

## SetValue

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

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

### Syntaks:

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

### Parametrar:

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

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

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

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

Vektorar vert alltid utvida loddrett unnateke viss målområdet er nøyaktig 1 rad høgt.

### Eksempel:

##### I Basic

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

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

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

##### I Python

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

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

## SetCellStyle

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

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

### Syntaks:

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

### Parametrar:

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

stil: Namnet på cellestilen som skal brukast..

### Eksempel:

##### I Basic

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

##### I Python

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

## SetFormula

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

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

### Syntaks:

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

### Parametrar:

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

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

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

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

Vis storleiken på formel er mindre enn storleiken på målområde, vert dei resterande cellene tømde.

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

Vektorar vert alltid utvida loddrett unnateke viss målområdet er nøyaktig 1 rad høgt.

### Eksempel:

##### I Basic

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

##### I Python

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

## SortRange

Sorterer det gjevne området basert på opptil tre kolonnar/rader. Sorteringsrekkjefølgja kan variera etter kolonne/rad. Det vert returnert ein streng som representerer det endra celleområdet. Storleiken på det endra området vert fullt ut bestemt av storleiken på kjeldeområdet.

### Syntaks:

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

### Parametrar:

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

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

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

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

inneheld_overskrift: Når Sann, vert den første rada/kolonnen ikkje sortert.

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

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

### Eksempel:

##### I Basic

        ' Sorteringsområdet basert på kolonnar. A (stigande) og C (fallande)
        oDoc.SortRange("A2:J200", Array(1, 3), Array("ASC", "DESC"), CaseSensitive := True)

##### I Python

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

Alle Basic-rutinane og -identifikatorane i ScriptForge som vert innleidde med understrek «_» er reserverte for internt bruk. Dei er ikkje tenkt brukte i Basic-makroar.

Liknande emne

Tenesta SFDocuments.Document

Tenesta ScriptForge.UI