Edukiak

# SFDocuments.Calc zerbitzua

SFDocuments liburutegi partekatuak LibreOffice dokumentuak kudeatu eta maneiatzea errazten duten metodo eta propietateak eskaintzen ditu.

SFDocuments.Calc zerbitzua SFDocuments.Document zerbitzuaren azpiklase bat da. Document zerbitzurako definitutako metodo eta propietate guztiak Calc zerbitzu-instantziaren bidez ere atzitu daitezke.

Calc zerbitzua honetarako da:

- Calc dokumentu bateko orriak kudeatzeko (kopiatu, txertatu, lekuz aldatu, etab.)

- Basic datu-egituren eta Calc barrutien arteko datuak trukatzeko

- Datu kantitate masiboak kopiatzeko eta inportatzeko

- Simple cell ranges formatting

Laguntza-orri honek Calc dokumentuei soilik aplikatu dakizkiekeen metodoak eta propietateak deskribatzen ditu.

## Zerbitzuari deitzea

Calc zerbitzua erabili baino lehen, ScriptForge liburutegia kargatu edo inportatu behar da:

• Basic makroak erabiltzkeo, ScriptForge liburutegia kargatu behar da honako instrukzioa erabiliz:
GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
• Python scriptak erabiltzeko, berriz, scriptforge modulu baten inportazioa behar dute:
from scriptforge import CreateScriptService

Calc zerbitzua eta UI ScriptForge liburutegiaren zerbitzua estu lotuta daude. Behean ageri dira Calc zerbitzua deitzeko moduak adierazten dituzten zenbait adibide.

##### Basic lengoaian

Beheko kode-zatiak uneko Calc dokumentu aktiboari dagokion Calc zerbitzu-instantzia bat sortzen du.

        Set oDoc = CreateScriptService("Calc")

Calc zerbitzuaren beste instantzia bat sortzeko beste modu bat UI zerbitzua erabiltzea da. Hurrengo adibidean, Calc dokumentu berria sortzen da eta oDoc elementua Calc zerbitzuaren instantzia bat da:

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

Edo UI zerbitzuaren OpenDocument metodoa erabilita:

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

Posible da, baita ere, CreateScriptService metodorako leiho-izen bat zehaztea Calc zerbitzuaren instantzia bat sortzeko:

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

Goiko adibidean, "MyFile.ods" dokumentu-leiho ireki baten izena da. Argumentu hori ematen ez bada, leiho aktiboa erabiliko da.

Calc zerbitzuari deitzeko beste modu bat ThisComponent-ek erreferentziatutako dokumentua erabiltzea da. Aukera hori oso erabilgarria da makro bat Basic IDEtik exekutatzen ari denean.

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

Gomendagarria da baliaboideak askatzea erabileraren ondoren:

        Set oDoc = oDoc.Dispose()

Hala ere, dokumentua CloseDocument metodoa erabilita itxi bada, ez da beharrezkoa baliabideak askatzea goian deskribatutako komandoaren bidez.

##### Python lengoaian

        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)

"SFDocuments." aurreizkia erabiltzea aukerakoa da zerbitzuari deitzen zaionean.

## Definizioak

Metodo askok "Orria" edo "Barrutia" behar dute argumentu gisa. Gelaxka bakunak Range elementuaren kasu berezitzat hartzen dira.

Biak ala biak kate gisa edo erreferentzia (=objektu) gisa adierazi daitezke, egoeraren arabera:

- Calc instantzia espezifiko batean, orriak eta barrutiak kate gisa ematen dira, adibidez "Orria1" eta "D2:F6".

- Horrez gain, .Sheet eta .Range propietateek Calc zerbitzuaren beste instantzia batetik deitutako metodo baten argumentu gisa erabili daitekeen erreferentzia bat itzultzen dute.

### Adibidea:

Beheko adibideak (soilik irakurtzeko moduan eta ezkutuan irekitako) A dokumentuko datuak B dokumentura kopiatzen ditu.

##### Basic lengoaian

        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)

##### Python lengoaian

        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

Sartu orri-izena .Sheet propietateak ekoiztutako string edo object gisa.

"~" (tildea) lasterbideak uneko orria ordezkatzen du.

### RangeName

Uneko instantziako orri batean kokatutako elkarren ondoko gelaxken multzo bat adierazten duen kate bat edo .Range propietateak ekoiztutako object bat.

"~" (tileta) lasterbideak ordezkatzen du uneko hautapena edo hautatutako lehen barrutia, barruti anitz hautatuta badaude.

"*" lasterbideak erabilitako gelaxka guztiak ordezkatzen ditu.

Orri-izena aukerakoa da barruti bat definitzean. Ez bada izen-orririk ematen, orri aktiboa erabiliko da. Inguruko komatxo bakunak eta $ ikurrak onartzen dira, baina ez ikusiarena egiten zaie.

OrriIzena kate gisa zehaztean, orri-izena inguratzen duten komatxo bakunen erabilera derrigorrezkoa da izenak zuriuneak (" ") edo puntuak (".") baditu.

Beheko adibideetan ikus daiteke zein kasutan erabili behar diren derrigorrez komatxo bakunak:

          ' Komatxo bakunen erabilera aukerakoa da
          oDoc.clearAll("SheetA.A1:B10")
          oDoc.clearAll("'SheetA'.A1:B10")
          ' Komatxo bakunen erabilera derrigorrezkoa da
          oDoc.clearAll("'Sheet.A'.A1:B10")

CurrentSelection propietatean salbu, Calc zerbitzuak gelaxken barruti bakunak soilik hartzen ditu kontuan.

Baliozko barrutien adibideak
1) $'OrriaX'.D2 2) $D$2 | Gelaxka bakarra
1) $'OrriaX'.D2:F6 2) D2:D10 | Barruti bakarra gelaxka anitzekin
$'OrriaX'.* | Emandako orrian erabilitako gelaxka guztiak
1) $'OrriaX'.A:A (A zutabea) 2) 3:5 (3 eta 5 arteko errenkadak) | Elkarren ondoko zutabe edo errenkaden gelaxka guztiak, erabilitako azken gelaxkaraino
nireBarrutia | "nireBarrutia" deitutako barruti bat kalkulu-orriaren mailan
1) ~.barrutiBat 2) OrriaX.barrutiBat | Barruti-izen bat orri-mailan
nireDok.Range("OrriaX.D2:F6") | 'OrriaX' orriaren barruko barruti bat 'nireDok' Calc instantziarekin lotutako fitxategian
~.~ edo ~ | Orri aktiboaren uneko hautapena

## Propietateak

Edozein dokumentutarako orokorrak diren propietateak inplizituki Calc dokumentuetan ere aplikatu daitezke. Informazio gehiagorako, ikus Document zerbitzuaren laguntza-orria.

Calc dokumentuetan espezifikoki erabilgarri dauden propietateak honakoak dira:

Izena | Irakurtzeko soilik | Argumentua | Itzulera mota | Deskribapena
--- | --- | --- | --- | ---
CurrentSelection | Ez | Bat ere ez | Katea edo kateen matrizea | Hautatutako barruti bakuna kate gisa, edo hautatutako barrutien zerrenda matrize gisa.
DefinedNames | Yes | None | String or array of strings | Returns the full sorted list of all named ranges in the document. The names defined in a single sheet are qualified with the sheet name.
FirstCell | Bai | OrriIzena edo BarrutiIzena as String | String | Emandako barruti edo orri batean erabilitako lehen gelaxka itzultzen du.
FirstColumn | Bai | OrriIzena edo BarrutiIzena as String | Long | Emandako barruti edo orri bateko ezkerreko zutabearen zenbakia itzultzen du.
FirstRow | Bai | OrriIzena edo BarrutiIzena as String | Long | Emandako barruti edo orri bateko goiko errenkadaren zenbakia itzultzen du.
Height | Bai | BarrutiIzena As String | Long | Emandako barrutiko errenkada kopurua (>=1).
LastCell | Bai | OrriIzena edo BarrutiIzena as String | String | Emandako barruti edo orri batean erabilitako azken gelaxka itzultzen du.
LastColumn | Bai | OrriIzena edo BarrutiIzena as String | Long | Emandako barruti edo orri batean erabilitako azken zutabea.
LastRow | Bai | OrriIzena edo BarrutiIzena as String | Long | Emandako barruti edo orri batean erabilitako azken errenkada.
Range | Bai | BarrutiIzena As String | Object | CopyToRange metodoaren eta antzekoen argumentu modura erabili daitekeen barruti-erreferentzia bat.
Region | Bai | BarrutiIzena As String | String | Zehaztutako barrutia duen arearik txikienaren helbidea itzultzen du, area hori hutsik dauden gelaxkez edo orriaren ertzez inguratuta egon arte. Horren baliokidea, emandako barrutiari ⌘ + *Ctrl + * lasterbidea aplikatzea da.
Sheet | Bai | OrriIzena As String | Object | CopySheet metodoaren eta antzeko beste batzuen argumentu modura erabili daitekeen orri-erreferentzia bat.
SheetName | Bai | BarrutiIzena As String | String | Emandako barruti-helbide baten orri-izena itzultzen du.
Sheets | Bai | Bat ere ez | Kate-matrizea | Dauden orri guztien izenak dituen zerrenda.
Width | Bai | BarrutiIzena As String | Long | Emandako barrutiko zutabe kopurua (>=1).
XCellRange | Bai | BarrutiIzena As String | Object | com.sun.star.Table.XCellRange UNO objektu bat.
XRectangle | Yes | RangeName As String | Object | A com.sun.star.awt.Rectangle UNO structure, describing, in pixels, the area on the screen where the range is located.
XSheetCellCursor | Bai | BarrutiIzena As String | Object | com.sun.star.sheet.XSheetCellCursor UNO objektu bat. Kurtsorea lekuz aldatu ondoren, emaitza gisa lortuko den barruti-helbidea kurtsore-objektuaren AbsoluteName UNO propietatearen bidez atzitu daiteke. Horrela, Calc zerbitzuaren propietateen eta metodoen argumentu gisa erabili daitekeen kate-balio bat itzultzen du.
XSpreadsheet | Bai | OrriIzena As String | Object | com.sun.star.sheet.XSpreadsheet UNO objektu bat.

Begiratu LibreOffice APIaren dokumentazioaren webgunea XCellRange, XSheetCellCursor eta XSpreadsheet UNO objektuei buruz gehiago ikasteko.

## Metodoak

Calc zerbitzuaren metodo-zerrenda
A1Style Activate AlignRange BorderRange Charts ClearAll ClearFormats ClearValues ColorizeRange CompactLeft CompactUp CopySheet CopySheetFromFile CopyToCell CopyToRange CreateChart CreatePivotTable DAvg | DCount DecorateFont DefineName DMax DMin DSum ExportRangeToFile FormatRange 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

Barruti-helbide bat itzultzen du orri-koordenatuetan oinarritutako kate gisa, alegia, errenkaden eta zutabeen zenbaki gisa.

Koordenatu-bikote bat soilik ematen bada, gelaxka bakar baten helbidea itzuliko da. Argumentu gehigarriak erabilita, barruti laukizuzen baten beheko eskuineko gelaxka zehaztu daiteke.

### Sintaxia:

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

### Parametroak:

row1, column1: Zehaztu kontuan hartuko den barrutiaren goiko ezkerreko gelaxkaren errenkadaren eta zutabearen zenbakiak. Errenkaden eta zutabeen zenbakiak 1ean hasten dira.

row2, column2: Zehaztu kontuan hartuko den barrutiaren beheko eskuineko gelaxkaren errenkadaren eta zutabearen zenbakiak. Argumentu horiek ez badira ematen, edo balioak row1 eta column1 baino txikiagoak badira, row1 eta column1 aldagaiek ordezkatzen duten gelaxka bakarreko barrutiaren helbidea itzuliko da.

sheetname: Itzulitako barruti-helbideari erantsiko zaion orriaren izena. Orriak lehendik existitu behar du. Balio lehenetsia "~" da, uneko orri aktiboa alegia.

### Adibidea:

Basic eta Python lengoaietako beheko adibideetan, kontuan izan "Sheet1" uneko orri aktiboa dela.

##### Basic lengoaian

        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

##### Python lengoaian

        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

A1Style metodoa argumentu bat behar duten Calc zerbitzuko propietate eta metodoetako edozeinekin konbinatu daiteke, adibidez GetValue, GetFormula edo ClearAll metodoekin.

## Activate

sheetname argumentua ematen bada, emandako orria aktibatuko da eta uneko orri hautatu bihurtuko da. Argumentu hori ez badago, dokumentu-leihoa aktibatuko da.

### Sintaxia:

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

### Parametroak:

sheetname: Dokumentuan aktibatuko den orriaren izena. Balio lehenetsia kate hutsa da, horrek esan nahi du dokumentu-leihoa orri aktiboa aldatu gabe aktibatuko dela.

### Adibidea:

Beheko adibideak "Sheet4" izeneko orria aktibatzen du uneko dokumentu aktiboan.

##### Basic lengoaian

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

##### Python lengoaian

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

Orri bat aktibatzea zentzuzkoa izateko, Calc dokumentu batean egin behar da. Calc dokumentu bat eskura duzula ziurtatzeko, erabili dokumentu-objektuaren isCalc propietatea. Horrek True (egia) itzuliko du Calc dokumentu bat bada eta False (faltsua) ez bada.

## AlignRange

Align horizontally or vertically a range of cells.

A filter formula can be specified to determine which cells shall be affected.

### Sintaxia:

svc.AlignRange(targetrange: str, alignment: str, opt filterformula: str, opt filterscope: str)

### Parametroak:

targetrange: The cell or the range as a string in which cells should be re-aligned.

alignment: a string combining 1 or 2 of next upper-case characters (other characters are ignored):

- L, R or C: left, right or center horizontally.

- B, T or M: bottom, top or center vertically (middle).

filterformula: A Calc formula that shall be applied to the given range to determine which cells will be affected. The specified formula must return True or False. If this argument is not specified, then all cells in the range are affected.

filterscope: Determines how filterformula is expanded to the given range. This argument is mandatory if a filterformula is specified. The following values are accepted:

- "CELL": The formula specified in the filterformula argument is expanded once for each cell in range.

- "ROW": The formula specified in the filterformula argument is expanded once for each row in range.

- "COLUMN": The formula specified in the filterformula argument is expanded once for each column in range.

### Adibidea:

##### Basic lengoaian

          ' Center all numeric cells, both horizontally and vertically.
          doc.AlignRange("SheetX.A1:J30", "Middle,Center", filterformula := "=IsNumeric(A1)", filterscope := "CELL")

##### Python lengoaian

          # Center all numeric cells, both horizontally and vertically.
          doc.AlignRange('SheetX.A1:J30', 'Middle,Center', filterformula = '=IsNumeric(A1)', filterscope = 'CELL')

## BorderRange

Apply within and around a range of cells a set of line borders.

The impacted cells may be determined with a filter formula and its scope.

All the borders have the same standard width, style and color. Pre-existing border lines in the impacted cells, rows or columns are first cleared. Other cells in the range are left untouched.

To clear the full range set border to "" and skip the filterformula argument.

### Sintaxia:

svc.BorderRange(targetrange: str, border: str, opt filterformula: str, opt filterscope: str)

### Parametroak:

targetrange: The cell or the range as a string on which borders should be applied.

border: A string combining next upper-case characters (other characters are ignored):

- B, L, T, R: bottom, left, top, right outer lines.

- H, V: horizontal, vertical inner lines.

- U, D: bottom-up, top-down diagonals.

filterformula: A Calc formula that shall be applied to the given range to determine which cells will be affected. The specified formula must return True or False. If this argument is not specified, then all cells in the range are affected.

filterscope: Determines how filterformula is expanded to the given range. This argument is mandatory if a filterformula is specified. The following values are accepted:

- "CELL": The formula specified in the filterformula argument is expanded once for each cell in range.

- "ROW": The formula specified in the filterformula argument is expanded once for each row in range.

- "COLUMN": The formula specified in the filterformula argument is expanded once for each column in range.

### Adibidea:

##### Basic lengoaian

            ' Border all numeric cells with a bottom line, including the horizontal inner lines.
            doc.BorderRange("SheetX.A1:J30", "HB", filterformula := "=IsNumeric(A1)", filterscope := "CELL")

##### Python lengoaian

            # Border all numeric cells with a bottom line, including the horizontal inner lines.
            doc.BorderRange('SheetX.A1:J30', 'HB', filterformula = '=IsNumeric(A1)', filterscope = 'CELL')

## Charts

Emandako orri bateko edo Chart zerbitzu-instantzia bateko diagrama-objektu guztien izenak dituen zerrenda bat itzultzen du.

- sheetname soilik zehazten bada, diagrama guztien izenak dituen zeron oinarritutako kate-matrize bat itzuliko da.

- chartname bat ematen bada, nahi den diagramari dagokion objektu bakar bat itzuliko da. Zehaztutako diagramak existitu behar du.

### Sintaxia:

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

### Parametroak:

sheetname: Diagrama-zerrendaren jatorria den orria edo zehaztutako diagrama dagoen orria.

chartname: Itzuliko den diagrama-objekturako erabiltzaileak definitu duen izena. Diagramak ez badu erabiltzaileak definitutako izenik, barneko objektu-izena erabili daiteke. Argumentu hau ez badago, zehaztutako orriko diagrama-izenen zerrenda itzuliko da.

Erabili Nabigatzailea alboko barrako OLE objektuak kategoria diagramei esleitu zaizkien izenak egiaztatzeko.

### Adibidea:

##### Basic lengoaian

Beheko adibidean, "Sheet1" orrian dauden diagrama-objektuen kopurua erakusten du.

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

Hurrengo adibidean, "Sheet1" orriko "MyChart" diagrama atzitzen da eta bere mota inprimatzen da.

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

##### Python lengoaian

        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

Emandako barrutiaren eduki eta formatu guztiak garbitzen ditu.

Iragazki-formula bat zehaztu daiteke zein gelaxkak garbituko diren zehazteko.

### Sintaxia:

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

### Parametroak:

range: Garbituko den barrutia, kate gisa.

filterformula: A Calc formula that shall be applied to the given range to determine which cells will be affected. The specified formula must return True or False. If this argument is not specified, then all cells in the range are affected.

filterscope: Determines how filterformula is expanded to the given range. This argument is mandatory if a filterformula is specified. The following values are accepted:

- "CELL": The formula specified in the filterformula argument is expanded once for each cell in range.

- "ROW": The formula specified in the filterformula argument is expanded once for each row in range.

- "COLUMN": The formula specified in the filterformula argument is expanded once for each column in range.

### Adibidea:

##### Basic lengoaian

        ' OrriaX.A1:J10 barrutiko gelaxka guztiak garbitzen ditu
        oDoc.ClearAll("OrriaX.A1:J10")
        ' OrriaX.A1:J10 barrutian, 100 baino balio handiagoa duten gelaxka guztiak garbitzen ditu
        oDoc.ClearAll("OrriaX.A1:J10", "=OrriaX.A1>100", "CELL")
        ' OrriaX.A1:J10 barrutian, batuketan 500 baino balio handiagoa ematen duten errenkadak garbitzen ditu
        oDoc.ClearAll("SheetX.A1:J10", "=SUM(SheetX.A1:J1)>500", "ROW")
        ' OrriaX.A1:J10 barrutian, batuketan 500 baino balio handiagoa ematen duten zutabeak garbitzen ditu
        oDoc.ClearAll("SheetX.A1:J10", "=SUM(SheetX.A1:A10)>500", "COLUMN")

##### Python lengoaian

        myDoc.ClearAll("OrriaX.A1:F10")
        myDoc.ClearAll("OrriaX.A1:J10", "=OrriaX.A1>100", "CELL")
        myDoc.ClearAll("SheetX.A1:J10", "=SUM(SheetX.A1:J1)>500", "ROW")
        myDoc.ClearAll("SheetX.A1:J10", "=SUM(SheetX.A1:A10)>500", "COLUMN")

## ClearFormats

Clears the formats and cell styles in the given range.

Iragazki-formula bat zehaztu daiteke zein gelaxkak garbituko diren adierazteko.

### Sintaxia:

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

### Parametroak:

range: Formatuak eta estiloak garbituko zaizkion barrutia, kate gisa.

filterformula: A Calc formula that shall be applied to the given range to determine which cells will be affected. The specified formula must return True or False. If this argument is not specified, then all cells in the range are affected.

filterscope: Determines how filterformula is expanded to the given range. This argument is mandatory if a filterformula is specified. The following values are accepted:

- "CELL": The formula specified in the filterformula argument is expanded once for each cell in range.

- "ROW": The formula specified in the filterformula argument is expanded once for each row in range.

- "COLUMN": The formula specified in the filterformula argument is expanded once for each column in range.

### Adibidea:

##### Basic lengoaian

          oDoc.ClearFormats("SheetX.*")

##### Python lengoaian

        myDoc.ClearFormats("SheetX.*")

Refer to the ClearAll method documentation for examples on how to use the arguments filterformula and filterscope.

## ClearValues

Emandako barrutiaren balioak eta formulak garbitzen ditu.

Iragazki-formula bat zehaztu daiteke zein gelaxkak garbituko diren adierazteko.

### Sintaxia:

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

### Parametroak:

range: Balioak eta formulak garbituko zaizkion barrutia, kate gisa.

filterformula: A Calc formula that shall be applied to the given range to determine which cells will be affected. The specified formula must return True or False. If this argument is not specified, then all cells in the range are affected.

filterscope: Determines how filterformula is expanded to the given range. This argument is mandatory if a filterformula is specified. The following values are accepted:

- "CELL": The formula specified in the filterformula argument is expanded once for each cell in range.

- "ROW": The formula specified in the filterformula argument is expanded once for each row in range.

- "COLUMN": The formula specified in the filterformula argument is expanded once for each column in range.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

Refer to the ClearAll method documentation for examples on how to use the arguments filterformula and filterscope.

## ColorizeRange

Define fore- and background colors of a range of cells.

The impacted cells may be determined with a filter formula and its scope.

### Sintaxia:

svc.ColorizeRange(targetrange: str, opt foreground: int, opt background: int, opt filterformula: str, opt filterscope: str)

### Parametroak:

targetrange: the cell or the range as a string in which cells should be (re-)colorizeed.

foreground: the foreground color as the output of the RGB() function. A negative value erases the foreground color

background: the background color as the output of the RGB() function. A negative value erases the background color

filterformula: A Calc formula that shall be applied to the given range to determine which cells will be affected. The specified formula must return True or False. If this argument is not specified, then all cells in the range are affected.

filterscope: Determines how filterformula is expanded to the given range. This argument is mandatory if a filterformula is specified. The following values are accepted:

- "CELL": The formula specified in the filterformula argument is expanded once for each cell in range.

- "ROW": The formula specified in the filterformula argument is expanded once for each row in range.

- "COLUMN": The formula specified in the filterformula argument is expanded once for each column in range.

### Adibidea:

##### Basic lengoaian

            ' Paint the numeric cell(s) in red.
            doc.ColorizeRange("SheetX.A1:J30", background := RGB(255, 0, 0), filterformula := "=IsNumeric(A1), filterscope := "CELL")

##### Python lengoaian

            # Paint the numeric cell(s) in red.
            basic = CreateScriptService('basic')
            doc.ColorizeRange('SheetX.A1:J30', background = basic.RGB(255, 0, 0), filterformula = '=IsNumeric(A1)', filterscope = 'CELL')

## CompactLeft

Calc formula gisa adierazitako iragazki batekin bat egiten duen barruti jakin bateko zutabeak ezabatzen ditu. Iragazkia zutabe bakoitzari aplikatzen zaio, hura ezabatuko den ala ez erabakitzeko.

Ezabatutako zutabea zehaztutako barrutiaren altueragatik mugatua egon daiteke edo orri osoaren altuerakoa izan daiteke. Azken kasu horretan, zutabe osoak ezabatuko dira.

Metodo honek barruti trinkotuko barruti-helbidea duen kate bat itzultzen du. Zutabe guztiak ezabatzen badira, hutsik dagoen kate bat itzuliko da.

Gelaxken barruti bat hautatzen bada, metodo honi deitzen bazaio hautapenean ez du eraginik izango.

### Sintaxia:

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

### Parametroak:

range: Zutabeak zein barrutitan ezabatuko diren, kate gisa.

wholecolumn: Aukera honetan True (egia) ezartzen bada, zutabe osoa ezabatuko da orritik. Balio lehenetsia False (faltsua) da, alegia, ezabatutako zutabeak zehaztutako range barrutiaren muga izango du.

filterformula: Zutabe bakoitzari aplikatuko zaion iragazkia hura ezabatu behar den ala ez zehazteko. Iragazkia lehen zutabeari aplikatu behar zaion Calc formula gisa adierazten da. Formulak True (egia) itzultzen badu zutabe batentzat, zutabe hori ezabatu egingo da. Iragazki lehenetsiak hutsik dauden zutabe guztiak ezabatzen ditu.

Adibidez, demagun A1:J200 dagoela hautatuta (altuera = 200). Formula lehenetsia honakoa da: =(COUNTBLANK(A1:A200)=200). Horrek esan nahi du lehen zutabean (A zutabea) 200 gelaxka hutsik badaude, zutabea ezabatu egingo dela. Kontuan izan formula lehen zutabearekiko soilik adierazten dela. Barnean, CompactLeft metodoak formula gainerako zutabeei aplikatuko die.

filterformula argumentuan erabilitako Calc funtzioak ingelesezko izenaren bidez adierazi behar dira. Begiratu Calc funtzioen zerrenda gunea Calc funtzioak ingelesez nola diren jakiteko.

### Adibidea:

##### Basic lengoaian

        ' Ezabatu Orria1 orrian dagoen G1:L10 barrutiko zutabe hutsak
        barrutiberria = oDoc.CompactLeft("Orria1.G1:L10")
        ' Beheko adibidea antzekoa da, baina zutabe osoa ezabatzen da orritik
        barrutiberria = oDoc.CompactLeft("Orria1.G1:L10", WholeColumn := True)
        ' Lehen errenkada "X" batez markatuta duten zutabe guztiak ezabatzen ditu
        barrutiberria = oDoc.CompactLeft("Orria1.G1:L10", FilterFormula := "=(G1=""X"")")
        ' Zutabeko balio guztien batuketa bakoitia bada, zutabea ezabatzen du
        barrutiberria = oDoc.CompactLeft("Orria1.G1:L10", FilterFormula := "=(MOD(SUM(G1:G10);2)=1)")

##### Python lengoaian

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

## CompactUp

Calc formula gisa adierazi den iragazki batekin bat egiten duten barruti jakin bateko errenkadak ezabatzen ditu. Iragazkia errenkada bakoitzari aplikatuko zaio, ezabatuko den ala ez erabakitzeko.

Ezabatutako errenkadak zehaztutako barrutiaren zabalerara mugatu daitezke, edo orri osoaren zabalerara hedatu daitezke. Azken kasu horretan, errenkada osoak ezabatuko dira.

Metodo honek barruti trinkoko barruti-helbideak dituen kate bat itzuliko du. Errenkadak ezabatzen badira, hutsik dagoen kate bat itzuliko da.

Gelaxken barruti bat hautatu bada, metodo honi deitzeak ez du eraginik izango hautapenean.

### Sintaxia:

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

### Parametroak:

range: Errenkadak ezabatuko zaizkion barrutia, kate gisa.

wholerow: Aukera honetan True ezarrita badago, errenkada osoa ezabatuko da orritik. Balio lehenetsia False da, alegia, ezabatutako errenkadak zehaztutako range barrutiaren muga izango du.

filterformula: Errenkada bakoitzari aplikatuko zaion iragazkia, hura ezabatu behar den ala ez zehazteko. Iragazkia Calc formula gisa adierazten da eta lehen errenkadan aplikatu behar da. Formulak True itzultzen badu errenkada baterako, errenkada hori ezabatu egingo da. Iragazki lehenetsiak hutsik dauden errenkada guztiak ezabatzen ditu.

Adibidez, demagun A1:J200 hautatu dela (zabalera = 10). Formula lehenetsia =(COUNTBLANK(A1:J1)=10) izango da. Horrek esan nahi du lehen errenkadan (1. errenkada) 10 gelaxkak hutsik badaude, errenkada ezabatu egingo dela. Kontuan izan formula lehen errenkadarekiko soilik adierazten dela. Barnean, CompactUp metodoak formula hori gainerako errenkadetara hedatuko du.

filterformula argumentuan zehaztutako formulan erabiltzen diren Calc funtzioak ingelesezko izenaren bidez adierazi behar dira. Begiratu Calc funtzioen zerrenda gunea Calc funtzioak ingelesez nola diren jakiteko.

### Adibidea:

##### Basic lengoaian

        ' Ezabatu Orria1 orriko G1:L10 barrutian hutsik dauden errenkadak
        barrutiberria = oDoc.CompactUp("Orria1.G1:L10")
        ' Beheko adibidea antzekoa da, baina errenkada osoa ezabatuko da orritik
        barrutiberria = oDoc.CompactUp("Orria1.G1:L10", WholeRow := True)
        ' Lehen zutabea "X" bidez markatuta duten errenkada guztiak ezabatzen ditu
        barrutiberria = oDoc.CompactUp("Orria1.G1:L10", FilterFormula := "=(G1=""X"")")
        ' Errenkada ezabatzen du errenkadako balio guztien batuketa bakoitia bada
        barrutiberria = oDoc.CompactUp("Orria1.G1:L10", FilterFormula := "=(MOD(SUM(G1:L1);2)=1)")

##### Python lengoaian

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

## CopySheet

Zehaztutako orria lehendik dagoen orri baten aurrean edo orri-zerrendaren amaieran kopiatzen du. Kopiatuko den orriak barruan edozein Calc dokumentu ireki eduki behar du. True (egia) itzultzen du ongi egiten bada.

### Sintaxia:

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

### Parametroak:

sheetname: Kate gisa kopiatuko den edo objektu gisa haren erreferentzia egingo den orriaren izena.

newname: Txertatuko den orriaren izena. Izenak dokumentuan erabili gabea izan behar du.

beforesheet: Orri baten izena (katea) edo indizea (zenbakizkoa, 1 zenbakitik hasita). Kopiatutako orria orri honen aurretik txertatuko da. Argumentu hau aukerakoa da eta portaera lehenetsia kopiatutako orria azken posizioan gehitzea da.

### Adibidea:

##### Basic lengoaian

Hurrengo adibidez "SheetX" orriaren kopia bat egiten du eta uneko dokumentuaren azken orri gisa kokatzen du. Kopiatutako orriaren izena "SheetY" da.

        Dim oDoc as Object
        'Leiho aktiboaren dokumentu-objektua eskuratzen du
        Set oDoc = CreateScriptService("Calc")
        oDoc.CopySheet("SheetX", "SheetY")

Beheko adibideak "SheetX" kopiatzen du "FileA.ods" fitxategitik eta "FileB.ods" fitxategiaren azken posizioan kopiatzen du "SheetY" izenarekin:

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

##### Python lengoaian

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

Dokumentu irekien arteko orriak kopiatzeko, erabili CopySheet. Orriak Itxita dauden dokumentuen arten kopiatzeko, erabili CopySheetFromFile.

## CopySheetFromFile

Itxitako Calc dokumentu bateko orri jakin bat kopiatzen du eta Document objektu batek erreferentzia egiten dion fitxategiak duen orri baten aurretik edo orri-zerrendaren amaieran itsasten du.

Fitxategia existitzen ez bada, errore bat gertatuko da. Fitxategia ez bada baliozko Calc fitxategia, orri zuria txertatuko da. Iturburuko orria existitzen ez bada sarrerako fitxategian, errore-mezu bat txertatuko da itsatsi berri den orriaren goiko aldean.

### Sintaxia:

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

### Parametroak:

filename: Irekiko den fitxategia identifikatzen du. SF_FileSystem.FileNaming notazioa jarraitu behar du. Fitxategiak ez du pasahitzarekin babestuta egon behar.

OrriIzena: Kate gisa kopiatuko den orriaren izena.

newname: Dokumentuan txertatuko den kopiatutako orriaren izena. Izenak ez du dokumentuan erabilia izan behar.

beforesheet: Kopiatutako orria zein orriren aurretik txertatuko den. Bigarren orri horren izena (katea) edo indizea (zenbakia, 1 zenbakitik hasita) izan daiteke. Argumentu hau aukerakoa da eta portaera lehenetsia da kopiatutako orria azken posizioan kopiatzea.

### Adibidea:

Hurrengo adibideak "myFile.ods" fitxategiko "SheetX" orria kopiatzen du eta "oDoc" aldagaiak "SheetY" gisa erreferentziatuta duen dokumentuan itsasten du, lehen posizioan.

##### Basic lengoaian

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

##### Python lengoaian

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

## CopyToCell

Zehaztutako iturburuko barruti bat (balioak, formulak eta formatuak) helburuko barruti edo gelaxka batean kopiatzen du. Metodoak kopiatu/itsatsi portaera errepikatzen du barrutik batetik gelaxka bakarrera.

Aldatutako gelaxka-barrutia ordezkatzen duen kate bat itzultzen du. Aldatutako arearen tamaina iturburuko arearen tamainak zehazten du.

Iturburu-barrutia beste dokumentu ireki batekoa izan daiteke.

### Sintaxia:

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

### Parametroak:

sourcerange: Iturburu-barrutia kate gisa, dokumentu berekoa denean, edo erreferentzia gisa, beste Calc dokumentu batekoa denean.

destinationcell: Kopiatutako gelaxka-barrutia itsatsiko den helburuko gelaxka, kate gisa. Barruti bat ematen bada, goiko ezkerreko gelaxka soilik hartuko da kontuan.

### Adibidea:

##### Basic lengoaian

Hurrengo adibidean, iturburua eta helburua fitxategi berean daude:

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

Beheko adibideak erakusten du nola kopiatu barruti bat beste Calc dokumentu ireki batean:

        Dim ui as Variant : ui = CreateScriptService("UI")
        Dim oDocSource As Object, oDocDestination As Object
        'Ireki iturburu-dokumentua atzeko planoan (ezkutuan)
        Set oDocSource = ui.OpenDocument("C:\SourceFile.ods", Hidden := True, ReadOnly := True)
        Set oDocDestination = CreateScriptService("Calc")
        oDocDestination.CopyToCell(oDocSource.Range("Sheet1.C2:C4"), "SheetT.A5")
        'Ez ahaztu iturburu-dokumentua ixtea, ezkutuan ireki baita
        oDocSource.CloseDocument()

##### Python lengoaian

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

Barruti batetik gelaxka bakar batera kopiatuko/itsatsiko dela simulatzeko, erabili CopyToCell. Barruti batetik barruti handiago batera kopiatuko/itsatsiko dela (gelaxka berak hainbatetan bikoiztuta) simulatzeko, erabili CopyToRange.

## CopyToRange

Beherantz eta/edo eskuinerantz kopiatzen du iturburu-barruti zehatz bat (balioak, formulak eta formatuak) helburuko barruti batean. Metodo horrek iturburu-barruti batetik helburuko barruti handiago batean kopiatzeko/itsasteko eragiketaren portaera imitatzen du.

- Helburuko arearen altuera (edo zabelar) > 1 errenkada (edo zutabe) bada, orduan iturburuaren altuerak (edo zabalerak) helburuaren <= altuera (edo zabalera) izan behar du. Bestela, ez da ezer gertatuko.

- Helburuaren altuera (edo zabalera) = 1 bada, helburua beherantz (edo eskuinerantz) hedatuko da iturburuko barrutiaren altuerara (edo zabalerara) iritsi arte.

Metodoak gelaxka-barruti aldatua ordezkatzen duen kate bat itzultzen du.

Iturburuko barrutia irekitako beste dokumentu batetik etorri daiteke.

### Sintaxia:

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

### Parametroak:

sourcerange: Iturburu-barrutia kate gisa, dokumentu berekoa bada, edo erreferentzia gisa, irekita dagoen beste Calc dokumentu bateko bada.

destinationrange: Kopiatutako gelaxka-barrutien helburua, kate gisa.

### Adibidea:

##### Basic lengoaian

Kopiatu dokumentu berearen barruan:

        oDoc.CopyToRange("SheetX.A1:F10", "SheetY.C5:J5")
        ' Barruti-kate bat itzultzen du: "$OrriaY.$C$5:$J$14"

Kopiatu fitxategi batetik beste batera:

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

##### Python lengoaian

        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

Zehaztutako barrutiko datuak erakusten dituen diagrama-objektu berri bat sortzen du. Itzulitako diagrama-objektua manipulatzeko, erabili Chart zerbitzua.

### Sintaxia:

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

### Parametroak:

chartname: The user-defined name of the chart to be created. The name must be unique in the same sheet.

sheetname: The name of the sheet where the chart will be placed.

range: The range to be used as the data source for the chart. The range may refer to any sheet of the Calc document.

columnheader: When True, the topmost row of the range is used as labels for the category axis or the legend (Default = False).

rowheader: When True, the leftmost column of the range is used as labels for the category axis or the legend. (Default = False).

### Adibidea:

Beheko adibideak, Basic zein Python lengoaietan erabili daitekeenak, diagrama bat sortzen du "Sheet1" orriko "A1:B5" barrutian dauden datuak erabilita eta "Sheet2" orrian kokatzen du.

##### Basic lengoaian

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

##### Python lengoaian

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

Begiratu ScriptForge liburutegiari buruzko Chart zerbitzua diagrama-objektuak manipulatzeko modu gehiago ikasteko. Posible da diagramaren propietateak aldatzea, adibidez diagramaren mota, diagramaren zein ardatzen izenburuak edo diagramaren kokagunea.

## CreatePivotTable

Metodoari pasatutako argumentuen bidez definitu diren propietateak dituen taula dinamiko bat sortzen du.

Taula dinamikoari izen bat eman behar zaio. Izen bereko beste taula dinamiko bat badago helburuko orrian, abisurik gabe ordeztuko da.

Metodo honek taula dinamiko berria kokatuko den barrutia duen kate bat itzultzen du.

### Sintaxia:

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

### Parametroak:

pivottablename: Taula dinamiko berriarentzat erabiltzaileak definitu duen izena.

sourcerange: The range containing the raw data, as a string. It is assumed that the first row contains the field names that are used by the pivot table.

targetcell: The top-left cell where the new pivot table will be placed. If a range is specified, only its top-left cell is considered.

datafields: It can be either a single string or an array containing strings that define field names and functions to be applied. When an array is specified, it must follow the syntax Array("FieldName[;Function]", ...).

Onartutako funtzioak: Sum, Count, Average, Max, Min, Product, CountNums, StDev, StDevP, Var, VarP eta Median. Funtzioen izenak ingelesez eman behar dira. Balio guztiak zenbakizkoak badira, Sum izango da funtzio lehenetsia; bestela, Count izango da.

rowfields A single string or an array with the field names that will be used as the pivot table rows.

columnfields: A single string or an array with the field names that will be used as the pivot table columns.

filterbutton: Determines whether a filter button will be displayed above the pivot table (Default = True).

rowtotals: Specifies if a separate column for row totals will be added to the pivot table (Default = True).

columntotals: Specifies if a separate row for column totals will be added to the pivot table (Default = True)

### Adibidea:

##### Basic lengoaian

        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("Elementua", "Herrialdea", "Taldea", "2002", "2003", "2004"), _
            Array("Liburuak", "Euskal Herria", "Asier", 14788, 30222, 23490), _
            Array("Gozokiak", "Katalunia", "Marc", 26388, 15641, 32849), _
            Array("Oinetakoak", "Galizia", "Xuxo", 16569, 32675, 25396), _
            Array("Liburuak", "Euskal Herria", "Irati", 21961, 21242, 29009), _
            Array("Gozokiak", "Galizia", "Francisca", 26142, 22407, 32841))
        sTable = oDoc.SetArray("A1", vData)
        sPivot = oDoc.CreatePivotTable("PT1", sTable, "H1", _
            Array("2002", "2003;count", "2004;average"), _ ' Hiru datu-eremu
            "Elementua", _ ' Errenkada-eremu bakarra
            Array("Herrialdea", "Taldea"), False) ' Bi zutabe-eremu

##### Python lengoaian

        ui = CreateScriptService("UI")
        doc = ui.CreateDocument("Calc")
        vData = [["Elementua", "Herrialdea", "Taldea", "2002", "2003", "2004"],
                 ["Liburuak", "Euskal Herria", "Esther", 14788, 30222, 23490],
                 ["Gozokiak", "Euskal Herria", "Esther", 26388, 15641, 32849],
                 ["Oinetakoak", "Euskal Herria", "Esther", 16569, 32675, 25396)],
                 ["Liburuak", "Euskal Herria", "Irati", 21961, 21242, 29009],
                 ["Gozokiak", "Euskal Herria", "Irati", 26142, 22407, 32841]]
        sTable = doc.SetArray("A1", vData)
        sPivot = doc.CreatePivotTable("PT1", sTable, "H1",
                                      ["2002", "2003;count", "2004;average"],
                                      "Elementua",
                                      ["Herrialdea", "Taldea"], False)

LibreOffice Calc aplikazioko taula dinamikoak hobeto ezagutzeko, irakurri taula dinamikoen laguntza-orria.

## DAvg, DCount, DMax, DMin and DSum

Apply the functions Average, Count, Max, Min and Sum, respectively, to all the cells containing numeric values on a given range, excluding values from filtered and hidden rows and hidden columns, the same as for the status bar functions.

### Sintaxia:

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

### Parametroak:

range: Funtzioa aplikatuko zaion barrutia, kate gisa.

### Adibidea:

Beheko adibidean Sum funtzioa aplikatzen zaio unean hautatutako orriko "A1:A1000" barrutiari:

##### Basic lengoaian

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

##### Python lengoaian

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

Emandako barrutian, testua duten gelaxkei ez ikusiarena egingo diete funtzio horiek. Adibidez, DCount metodoak ez ditu zenbatuko testua duten gelaxkak, zenbakiak dituztenak soilik.

## DecorateFont

Specify simple and easy properties of the font to be used in a range of cells.

The impacted cells may be determined with a filter formula and its scope.

To apply more complex font decorations, apply the usual and numerous UNO properties available in the XCell or XCellRange interfaces.

### Sintaxia:

svc.DecorateFont(targetrange: str, opt fontname: str, opt fontsize: int, opt decoration: str, opt filterformula: str, opt filterscope: str)

### Parametroak:

targetrange: The cell or the range as a string in which cell fonts should be re-decorated.

fontname: The name of the font to be used. The name is not checked. Default = no change.

fontsize: The size of the font in pixels. Default = no change.

decoration: A string combining 1 or more of next upper-case characters (other characters are ignored). Default = no change:

- B, U, I, S: Bold, Underline, Italic, Strikethrough.

filterformula: A Calc formula that shall be applied to the given range to determine which cells will be affected. The specified formula must return True or False. If this argument is not specified, then all cells in the range are affected.

filterscope: Determines how filterformula is expanded to the given range. This argument is mandatory if a filterformula is specified. The following values are accepted:

- "CELL": The formula specified in the filterformula argument is expanded once for each cell in range.

- "ROW": The formula specified in the filterformula argument is expanded once for each row in range.

- "COLUMN": The formula specified in the filterformula argument is expanded once for each column in range.

### Adibidea:

##### Basic lengoaian

            ' Modify the font size and apply bold and underline properties to the numeric cells.
            doc.DecorateFont("SheetX.A1:J30", fontsize := 15, decoration := "Bold,Underline", filterformula := "=IsNumeric(A1)", filterscope := "CELL")

##### Python lengoaian

            # Modify the font size and apply bold and underline properties to the numeric cells.
            doc.DecorateFont('SheetX.A1:J30', fontsize = 15, decoration = 'Bold,Underline', filterformula = '=IsNumeric(A1)', filterscope = 'CELL')

## DefineName

Define a new name in the worksheet, at global or sheet level. If the name exists already, it is overwritten without warning. After creation, the new name can be used in formulas. Returns True when successful.

Use DefinedNames property to examine existing named ranges.

### Sintaxia:

svc.DefineName(definedname: str, value: any, opt sheetname: str): boolean

### Parametroak:

definedname: The name to be created or modified without warning. Note that homonyms may exist, but not in the same sheet and not at global level.

value: The new name as:

- a range reference as a string, often a single cell

- a scalar value as a number or a string

- a formula starting with the "=" sign

When Value is a range, the top-left cell is set as reference cell.

sheetname: The defined name scope is that of the specified sheet. The "~" shortcut is accepted.

### Adibidea:

##### Basic lengoaian

            doc.DefineName("NewName", Sheet := "Sheet3", Value := "H2")

##### Python lengoaian

            doc.DefineName('NewName', sheet = 'Sheet3', value = 'H2')

## ExportRangeToFile

Zehaztutako barrutia irudi gisa edo PDF fitxategi gisa esportatzen du.

Metodo honek True (egia) itzultzen du helburuko fitxategia ongi gorde bada.

Zehaztutako barrutiaren ezkutuko errenkadak edo zutabeak ez dira helburuko fitxategira esportatuko.

### Sintaxia:

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

### Parametroak:

range: Esportatuko den orri baten izena edo gelaxka-barruti bat, kate gisa.

filename: Gordeko den fitxategiaren izena. SF_FileSystem.FileNaming notazioa jarraitu behar du.

imagetype: Helburuko fitxategi mota identifikatzen du. Balio posibleak: "jpeg", "pdf" (lehenetsia) eta "png".

overwrite: True ezartzen bada, helburuko fitxategia gainidatzi daiteke (Balio lehenetsia = False).

### Adibidea:

##### Basic lengoaian

        ' Orri osoa PDF fitxategi gisa esportatzen du
        oDoc.ExportRangeToFile("SheetX", "C:\Temp\image.pdf")
        ' Barrutia PNG fitxategi gisa esportatzen du eta helburuko fitxategia gainidazten du, hura badago
        oDoc.ExportRangeToFile("SheetX.A1:D10", "C:\Temp\image.png", "png", Overwrite := True)

##### Python lengoaian

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

## FormatRange

Apply a given number format to a cell or a range of cells.

The impacted cells may be determined with a filter formula and its scope.

### Sintaxia:

svc.FormatRange(targetrange: str, numberformat: str, opt locale: str, opt filterformula: str, opt filterscope: str)

### Parametroak:

targetrange: The cell or the range as a string that should receive the format.

numberformat: The format to apply, as a string.

locale: A la-CO (language-COUNTRY) combination to indicate the used locale. The default locale is the output of the platform.FormatLocale property

filterformula: A Calc formula that shall be applied to the given range to determine which cells will be affected. The specified formula must return True or False. If this argument is not specified, then all cells in the range are affected.

filterscope: Determines how filterformula is expanded to the given range. This argument is mandatory if a filterformula is specified. The following values are accepted:

- "CELL": The formula specified in the filterformula argument is expanded once for each cell in range.

- "ROW": The formula specified in the filterformula argument is expanded once for each row in range.

- "COLUMN": The formula specified in the filterformula argument is expanded once for each column in range.

### Adibidea:

##### Basic lengoaian

            ' Format only the cells containing a numeric value.
            doc.FormatRange("SheetX.A1:J30", "0,00E+00", filterformula := "=IsNumeric(A1)", filterscope := "CELL")

##### Python lengoaian

            # Format only the cells containing a numeric value.
            doc.FormatRange('SheetX.A1:J30', '0,00E+00', filterformula = '=IsNumeric(A1)', filterscope = 'CELL')

## Forms

Emandako parametroen arabera, metodoak honakoa itzuliko du:

- Zeron oinarritutako matrize bat (edo tupla bat Python-en), emandako orri bateko inprimaki guztiak dituena (Form argumenturik ez badago)

- Argumentu gisa zehaztu den inprimakia ordezkatzen duen SFDocuments.Form zerbitzuaren instantzia bat.

### Sintaxia:

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

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

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

### Parametroak:

sheetname: Orri baten izena, kate gisa, zeinetatik inprimakia atzituko den.

form: Zehaztutako orrian biltegiratutako inprimaki baten izena edo hari dagokion indizea. Argumentu hau falta bada, metodoak orrian eskuragarri dauden inprimaki guztien izenak dituen zerrenda bat itzuliko du.

### Adibidea:

Hurrengo adibideetan, lehen lerroak "Orria1" orrian biltegiratutako inprimaki guztien izenak jasotzen ditu eta bigarren lerroak "Orria1" orrian dagoen "Inp_A" izeneko inprimakiaren Form objektua atzitzen du.

##### Basic lengoaian

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

##### Python lengoaian

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

## GetColumnName

1 eta 1024 zenbakien artean dagoen zutabe-zenbaki bat zenbakiari dagokion letra ('A', 'B', ..., 'AMJ' zutabea) bihurtzen du. Emandako zutabe-zenbakia onartutako barrutitik at badago, zero luzerako kate bat itzuliko da.

### Sintaxia:

svc.GetColumnName(columnnumber: int): str

### Parametroak:

columnnumber: The column number as an integer value in the interval 1 ... 16384.

### Adibidea:

##### Basic lengoaian

Hirugarren zutabearen izena duen mezu-koadro bat bistaratzen du. Modu lehenetsian "C" da izena.

        MsgBox oDoc.GetColumnName(3)

##### Python lengoaian

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

The maximum number of columns allowed on a Calc sheet is 16384.

## GetFormula

Eskuratu emandako gelaxka-barrutian gordetako formula(k) kate bakar gisa edo 1D edo 2D kate-matrize gisa.

Itzulitako formuletan erabiltzen diren Calc funtzioak ingelesezko izenaren bidez adierazi behar dira. Begiratu Calc funtzioen zerrenda gunea Calc funtzioak ingelesez nola diren jakiteko.

### Sintaxia:

svc.GetFormula(range: str): any

### Parametroak:

range: Formulak zein barrutitik eskuratuko diren, kate gisa.

### Adibidea:

##### Basic lengoaian

Hurrengo adibideak 3 x 2 matrize bat itzultzen du, "A1:B3" barrutiko formulak hartuta (3 errenkada x 2 zutabe):

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

##### Python lengoaian

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

## GetValue

Eskuratu emandako gelaxka-barrutian gordetako balio(k) kate bakar gisa edo 1D edo 2D kate-matrize gisa. Balio guztiak zenbaki bikoitiak edo kateak dira.

### Sintaxia:

svc.GetValue(range: str): any

### Parametroak:

range: Balioak zein barrutitik eskuratuko diren, kate gisa.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

Gelaxka batek data bat badu, data horri dagokion zenbakia itzuliko da. Zenbakizko balioak data bihurtzeko Basic scriptetan, erabili CDate funtzio integratua. Python scriptetan, erabili Basic zerbitzuaren CDate funtzioa.

## ImportFromCSVFile

CSV formatuko testu-fitxategi bateko edukiak inportatzen ditu eta emandako helburuko gelaxkan kokatzen ditu.

Helburuko areako eduki eta formatu guztiak garbitzen dira CSV fitxategiaren edukiak txertatu baino lehen. Aldatutako arearen tamaina sarrerako fitxategiko edukien araberakoa da.

Metodoak gelaxka-barruti aldatua ordezkatzen duen kate bat itzultzen du.

### Sintaxia:

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

### Parametroak:

filename: Irekiko den fitxategia identifikatzen du. SF_FileSystem.FileNaming notazioa jarraitu behar du.

destinationcell: Inportatutako datuak txertatuko diren helburuko gelaxka, kate gisa. Barruti bat ematen bada, goiko ezkerreko gelaxka soilik hartuko da kontuan.

filteroptions: Sarrerako CSV fitxategiaren argumentuak. Iragazki lehenetsiak honako baldintzak ematen ditu ontzat:

- Sarrerako fitxategiaren kodeketa UTF8 da.

- Eremu-bereizlea koma bat, puntu eta koma bat edo tabulazio bat da.

- Kate-mugatzailea komatxo bikoitza (") da.

- Lerro guztiak barne daude.

- Komatxo arteko kateei testuaren formatua emango zaie.

- Zenbaki bereziak detektatuko dira.

- Zutabe guztiak testukoak direla suposatuko da, baliozko zenbaki gisa ezagutzen direnean salbu.

- Hizkuntza AEBetako ingelesa da. Horrek inplikatzen du dezimalen bereizlea "." dela eta milakoen bereizlea "," dela.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

CSV iragazkien aukerei buruz gehiago jakiteko, begiratu CSV iragazkien aukeren laguntza-orria.

## ImportFromDatabase

Datu-base bateko taula, kontsulta edo emaitza multzo baten edukiak inportatzen ditu, alegia SELECT SQL komandoaren emaitza, eta helburuko gelaxka batean txertatzen du.

Helburuko areako eduki eta formatu guztiak garbituko dira inportatutako edukiak txertatu baino lehen. Aldatutako arearen tamaina taulako edo kontsultako edukien araberakoa izango da.

Metodo honek True itzultzen du inportazioa ongi gauzatu denean.

### Sintaxia:

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

### Parametroak:

filename: Irekiko den fitxategia identifikatzen du. SF_FileSystem.FileNaming notazioa jarraitu behar du.

registrationname: Datu-baseen erregistroan datu-basea aurkitzeko erabiliko den izena. Argumentu honi ez ikusiarena egingo zaio filename ematen bada.

destinationcell: Inportatutako datuen helburua, kate gisa. Barruti bat ematen bada, goiko ezkerreko gelaxka soilik hartuko da kontuan.

sqlcommand: Taula baten edo kontsulta baten izena (inguruan komatxoak edo kortxeteak jarri gabe) edo SELECT SQL instrukzio bat non taularen edo eremuen izenak kortxeteekin edo komatxoekin inguratuta egon daitezkeen instrukzioaren irakurgarritasuna hobetzeko.

directsql: True (egia) denean, SQL komandoa aurretiko analisirik gabe bidaltzen zaio datu-basearen motorrari. Balio lehenetsia False (faltsua) da. Taulen kasuan, ez ikusiarena egiten zaio argumentuari. Kontsultetan, aplikatutako aukera kontsulta definitu zenean ezarritakoa da.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

### ImportStylesFromFile

This method loads all the styles belonging to one or more style families from a closed file into the actual document. The actual document must be a Calc or a Writer document.

Are always imported together:

- ParagraphStyles and CharacterStyles

- NumberingStyles and ListStyles

Returns True if styles were successfully imported.

### Sintaxia:

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

### Parametroak:

filename: The file from which to load the styles in the FileSystem notation. The file is presumed to be of the same document type as the actual document.

families: One of the style families present in the actual document, as a case-sensitive string or an array of such strings. Leave this argument blank to import all families.

overwrite: When True, the actual styles may be overwritten. Default is False.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

## InsertSheet

Orri huts berria txertatzen du lehendik dagoen orri baten aurrean edo orrien zerrendaren amaieran.

### Sintaxia:

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

### Parametroak:

sheetname: Orri berriaren izena.

beforesheet: Orri berria argumentu honetan ezarritako orriaren aurrean txertatuko da. Orriaren izena (katea) edo indizea (zenbakia, 1etik hasita) eman behar da. Argumentu hau aukerakoa da, portaera lehenetsian orria azken posizioan txertatuko da.

### Adibidea:

Hurrengo adibideak "SheetX" izeneko orri hutsa txertatzen du eta "SheetY" orriaren aurrean kokatzen du:

##### Basic lengoaian

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

##### Python lengoaian

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

## Intersect

Returns the string representing the intersection between the two input ranges, or a zero-length string when the intersection is empty.

### Sintaxia:

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

### Parametroak:

range1: The address string of range 1.

range2: The address string of range 2.

### Adibidea:

The following example intersects two ranges, and returns the common range between both of them:

##### Basic lengoaian

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

##### Python lengoaian

        common_range = myDoc.Intersect("A1:D8", "C3:F4")
        print(common_range)  # outputs '$Sheet1.$C$3:$D$4' to the Python shell

## MoveRange

Iturburko barruti bat helburuko gelaxka-barruti batera eramaten du. Metodoak gelaxka-barruti aldatua ordezkatzen duen kate bat itzultzen du. Aldatutako arearen dimentsioak iturburuko arearen tamainaren arabera zehazten dira.

### Sintaxia:

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

### Parametroak:

source: Gelaxken iturburu-barrutia, kate gisa.

destination: Helburuko gelaxka, kate gisa. Barruti bat ematen bada, goiko ezkerreko gelaxka hartuko da helburutzat.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

## MoveSheet

Lehendik dagoen orri bat lekuz aldatzen du eta zehaztutako orri baten aurrean edo orri-zerrendaren amaieran kokatzen du.

### Sintaxia:

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

### Parametroak:

sheetname: Lekuz aldatuko den orriaren izena. Orriak existitu behar du, bestela salbuespen bat sortuko da.

beforesheet : Jatorrizko orria zein orriren aurretik txertatuko den. Bigarren orri horren izena (katea) edo indizea (zenbakia, 1etik hasita) eman daiteke. Argumentu hau aukerakoa da eta portaera lehenetsia da orria azken posiziora eramatea.

### Adibidea:

Beheko adibideak lehendik dagoen "SheetX" lekuz aldatzen du eta "SheetY" aurrean kokatzen du:

##### Basic lengoaian

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

##### Python lengoaian

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

## Offset

Barruti-desplazamendu berri bat itzultzen du (kate gisa). Desplazamendua errenkada eta zutabe kopuru jakin batekoa da, emandako barruti batetik.

Metodo honek Calc aplikazioko izen bereko Offset funtzioaren portaera bera du.

### Sintaxia:

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

### Parametroak:

reference: Desplazamendua gauzatzeko metodoak erreferentzia modura erabiliko duen barrutia, kate gisa.

rows: Hasierako barrutia gorantz (balio negatiboa) edo beherantz (balio positiboa) desplazatuko den errenkada kopurua. Erabili 0 (balio lehenetsia) errenkada berean geratzeko.

columns: Hasierako barrutia ezkerrerantz (balio negatiboa) edo eskuinerantz (balio positiboa) desplazatuko den zutabe kopurua. Erabili 0 (balio lehenetsia) zutabe berean geratzeko.

height: Barruti-kokaleku berrian hasten den area baten altuera bertikala. Ez erabili argumentu hau tamaina bertikala aldatu behar ez denean.

width: Barruti-kokaleku berrian hasten den area baten zabalera horizontala. Ez erabili argumentu hau tamaina horizontala aldatu behar ez denean.

rows eta columns argumentuek ez dute zero edo negatiboa den hasierako errenkada edo zutabera eraman behar.

height eta width argumentuek ez dute zero edo negatiboa den errenkada edo zutabeen kopurua eman behar.

### Adibidea:

##### Basic lengoaian

        oDoc.Offset("A1", 2, 2)
        'SheetX.$C$3 (A1 gelaxka bi errenkada eta bi zutabe beherantz eraman da)
        oDoc.Offset("A1", 2, 2, 5, 6)
        'SheetX.$C$3:$H$7 (A1 gelaxka bi errenkada eta zutabe lekuz aldatu da, 5 errenkadako eta 6 zutabeko zabalerarekin)

##### Python lengoaian

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

## OpenRangeSelector

Elkarrizketa-koadro ez modal bat irekitzen du dokumentuko barruti bat hautatu ahal izateko eta barruti hautatu hori duen kate bat itzultzen du.

Metodo honen bidez, LibreOffice aplikazioek 'Txikiagotu' botoia sakatzen denean irekitzen den elkarrizketa-koadro bera irekitzen da. Adibidez, Tresnak - Xede-bilaketa elkarrizketa-koadroa 'Txikiagotu' botoi bat du Formula-gelaxka eremuaren eskuinean.

Metodo honek ez du uneko hautapena aldatzen.

### Sintaxia:

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

### Parametroak:

title: Elkarrizketa-koadroaren izenburua, kate modura.

selection: Elkarrizketa-koadroa bistaratzen denean erakusten den hasierako barruti bat, aukerakoa.

singlecell: True (balio lehenetsia) bada, gelaxka bakarren hautapena soilik onartzen da. False bada, barrutien hautapena ere onartzen da.

closeafterselect: True (balio lehenetsia) bada, elkarrizketa-koadroa hautapena egin eta berehala itxiko da. False bada, erabiltzaileak nahi adina aldiz aldatu dezake hautapena, eta gero eskuz itxi dezake elkarrizketa-koadroa.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

## Printf

Sarrerako katea itzultzen du, bere token-karaktereak barruti jakin bateko balioekin ordeztu ondoren.

Metodo honek ez du uneko hautapena aldatzen.

Metodo hau barruti-izen baten zatiak, adibidez orri-izena edo lehen gelaxkaren zutabea eta errenkada, azkar erauzteko erabili daiteke, zati horiekin gero barruti-helbide berriak sortzeko.

### Sintaxia:

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

### Parametroak:

inputstr: range barrutian dauden balioekin ordeztuko diren tokenak dituen katea.

range: RangeName bat zeinetatik balioak erauziko diren. Orri-izen bat badu, orriak existitu behar du.

tokencharacter: Tokenak identifikatzeko erabiliko den karakterea. Modu lehenetsian, "%" da token-karakterea. Honako tokenak onartzen dira:

- %S - Barrutia duen orriaren izena, komatxo bakunak barne, hori beharrezkoa denean.

- %R1 - Barrutiko goiko ezkerreko gelaxkaren errenkada-zenbakia.

- %C1 - Barrutiko goiko ezkerreko gelaxkaren zutabe-letra.

- %R2 - Barrutiko beheko eskuineko gelaxkaren errenkada-zenbakia.

- %C2 - Barrutiko beheko eskuineko gelaxkaren zutabe-letra.

### Adibidea:

##### Basic lengoaian

Beheko adibideak sRange aldagaian definitutako RangeName barrutiko elementu bakoitza erauzten du eta mezu bat osatzeko erabiltzen du.

        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)

Printf metodoa SetFormula metodoarekin konbinatu daiteke gelaxka anitz hartzen dituzten formulak sortzeko. Adibidez, "A1:E10" barrutian zenbakizko balioak dituen taula bat hartzen bada eta formulak sortu nahi badira errenkada bakoitzeko balioen batuketa egiteko eta emaitzak "F1:F10" barrutian kokatu nahi badira:

        Dim sFormula as String, sRange as String
        sRange = "A1:E10"
        ' Begiratu nola erabiltzen den "$" karakterea
        sFormula = "=SUM($%C1%R1:$%C2%R1)"
        oDoc.SetFormula("F1:F10", oDoc.Printf(sFormula, sRange))

##### Python lengoaian

        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

Metodo honek Document zerbitzuaren SetPrinter metodoak definitutako inprimagailura edo inprimagailu lehenetsira bidaltzen ditu emandako orriaren edukiak.

True itzultzen du orria ongi inprimatu bada.

### Sintaxia:

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

### Parametroak:

sheetname: Inprimatuko den orria, balio lehenetsia orri aktiboa da.

pages: Inprimatuko diren orrialdeak kate gisa, erabiltzaile-interfazean bezala. Adibidea: "1-4;10;15-18". Balio lehenetsia orrialde guztiak dira.

copies: Kopia kopurua. Balio lehenetsia 1 da.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

## RemoveDuplicates

Removes duplicate rows from a specified range. The comparison to determine if a given row is a duplicate is done based on a subset of columns in the range.

This method returns a string containing the resulting range.

The removal of duplicate rows is done starting at the first row in the range moving downwards, meaning that if two or more rows are duplicates then only the first one is kept.

### Sintaxia:

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

### Parametroak:

range: The range from which duplicates will be removed, as a string.

columns: An array containing column numbers indicating which columns will be considered to determine if a row is a duplicate or not. If this argument is left blank, then only the first column is used. Items in this array must be in the interval between 1 and the range width.

header: Specifies whether the first row is a header row (Default = False).

casesensitive: Specifies whether string comparisons are case-sensitive (Default = False).

mode: Specifies what to do with duplicate rows. If mode = "CLEAR" then duplicates are simply removed from the sheet leaving the cells blank. If mode = "COMPACT" then duplicates are removed and empty rows are compacted up (Default = "COMPACT").

### Adibidea:

##### Basic lengoaian

        ' Removes duplicate rows where values in column A are duplicate
        ' Note that all optional arguments use their default value
        oDoc.RemoveDuplicates("A1:B10")
        ' Removes duplicate rows considering that the first row contains headers
        ' Columns A and B are used to determine if a row is a duplicate
        ' Cells containing duplicate values are left blank
        oDoc.RemoveDuplicates("A1:D10", columns := Array(1, 2), header := True, mode := "CLEAR")

##### Python lengoaian

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

## RemoveSheet

Lehendik dagoen orri bat dokumentutik kentzen du.

### Sintaxia:

svc.RemoveSheet(sheetname: str): bool

### Parametroak:

sheetname: Kenduko den orriaren izena.

### Adibidea:

##### Basic lengoaian

        oDoc.RemoveSheet("SheetY")

##### Python lengoaian

        myDoc.RemoveSheet("SheetY")

## RenameSheet

Emandako orriaren izena aldatzen du eta True itzultzen du ongi aldatzen badu.

### Sintaxia:

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

### Parametroak:

sheetname: Izena aldatuko zaion orriaren izena.

newname: Orriaren izen berria. Lehendik ez du izen horrek egon behar.

### Adibidea:

Adibide honetan, orri aktiboari "SheetY" izena ematen zaio:

##### Basic lengoaian

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

##### Python lengoaian

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

## SetArray

Emandako balioa biltegiratzen du, zehaztutako helburuko gelaxka batean hasita. Eguneratutako area hedatu egingo da helburuko gelaxkatik edo emandako barrutiaren goiko ezkerreko izkinatik, sarrerako value argumentuaren tamainari egokitzeko. Bektoreak bertikalean hedatuko dira beti.

Metodoak area aldatua gelaxka-barruti gisa ordezkatzen duen kate bat itzultzen du.

### Sintaxia:

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

### Parametroak:

targetcell: Emandako balioa biltegiratzen hasiko den gelaxka edo barrutia (kate gisa).

value: Eskalar bat, bektore bat edo matrize bat (Python lengoiaian, dimentsio bateko edo biko zerrendak eta tuplak), biltegiratuko diren balio berriak dituena. Balioak helburuko gelaxkan hasita edo barrutiaren goiko ezkerreko izkinan hasita, targetcell barruti bat bada, biltegiratuko dira. Balio berriek kateak, zenbakizko balioak edo datak izan behar dute. Beste motak erabiltzen badira, gelaxkak hustu egingo dira.

### Adibidea:

##### Basic lengoaian

Hurrengo adibideak DimArray funtzioa integratua darabil matrize bat sortzeko eta hura "A1" gelaxkan biltegiratzeko:

        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)

Adibide honek ScriptForge Array zerbitzuaren RangeInit metodoa erabiltzen du balioak dituen matrize bat sortzeko eta haiek "A1" gelaxkan eta ondorengoetan biltegiratzeko.

        'Bete lehen zutabea 1 eta 1000 arteko balioekin
        oDoc.SetArray("Sheet1.A1", SF_Array.RangeInit(1, 1000))

##### Python lengoaian

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

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

Matrize baten eduki osoa orri batean isurtzeko, erabili SetArray. Matrize baten edukiak helburuko gelaxka-barrutian soilik isurtzeko, erabili SetValue.

## SetCellStyle

Zehaztutako gelaxka-estiloa emandako helburuko barrutiari aplikatzen dio. Barruti osoa eguneratuko da eta orriaren gainerakoa ez da ukituko. Gelaxka-estiloa existitzen ez bada, errore bat sortuko da.

Aldatutako area gelaxken barruti gisa adierazten duen kate bat itzultzen du metodoak.

### Sintaxia:

svc.SetCellStyle(targetrange: str, style: str, opt filterformula: str, opt filterscope: str): str

### Parametroak:

targetrange: Estiloa aplikatuko zaion barrutia, kate gisa.

style: Aplikatuko den gelaxka-estiloaren izena.

filterformula: A Calc formula that shall be applied to the given range to determine which cells will be affected. The specified formula must return True or False. If this argument is not specified, then all cells in the range are affected.

filterscope: Determines how filterformula is expanded to the given range. This argument is mandatory if a filterformula is specified. The following values are accepted:

- "CELL": The formula specified in the filterformula argument is expanded once for each cell in range.

- "ROW": The formula specified in the filterformula argument is expanded once for each row in range.

- "COLUMN": The formula specified in the filterformula argument is expanded once for each column in range.

### Adibidea:

##### Basic lengoaian

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

##### Python lengoaian

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

Refer to the ClearAll method documentation for examples on how to use the arguments filterformula and filterscope.

## SetFormula

Emandako formulen (matrizea) zehaztutako barrutian txertatzen du. Aldatutako arearen tamaina eta barrutiaren tamaina berdinak dira.

Aldatutako area gelaxken barruti gisa adierazten duen kate bat itzultzen du metodoak.

### Sintaxia:

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

### Parametroak:

targetrange: Formulak txertatuko diren barrutia, kate gisa.

formula: Helburuko barrutiko gelaxka bakoitzerako formula berriak dituen kate bat, bektore bat edo kateen matrize bat.

Barruti osoa eguneratuko da eta orriaren gainerakoa aldaketarik gabe utziko da.

Emandako formula kate bat bada, formula bakarra barruti osoan itsatsiko da, erreferentzia erlatiboak doituta.

formula barrutiaren tamaina targetrange barrutiarena baino txikiagoa bada, gainerako gelaxkak hustu egingo dira.

formula barrutiaren tamaina targetrange barrutiarena baino handiagoa bada, formulak partzialki soilik kopiatuko dira targetrange barrutiaren tamaina bete arte.

Bektoreak bertikalean hedatzen dira beti, salbu eta targetrange barrutiaren altuera errenkada batekoa bada.

formula argumentuan erabiltzen diren Calc funtzioak ingelesezko izenaren bidez adierazi behar dira. Begiratu Calc funtzioen zerrenda gunea Calc funtzioak ingelesez nola diren jakiteko.

### Adibidea:

##### Basic lengoaian

        oDoc.SetFormula("A1", "=A2")
        'Bektore horizontala, partzialki hutsik
        oDoc.SetFormula("A1:F1", Array("=A2", "=B2", "=C2+10"))
        'D2 gelaxkak "=H2" formula du
        oDoc.SetFormula("A1:D2", "=E1")

##### Python lengoaian

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

## SetValue

Emandako balioa zehaztutako barrutian biltegiratzen du. Aldatutako arearen tamaina helburuko barrutiaren tamaina bera izango da.

Metodoak area aldatua gelaxka-barruti gisa ordezkatzen duen kate bat itzultzen du.

### Sintaxia:

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

### Parametroak:

targetrange: Emandako balioa biltegiratuko den barrutia, kate gisa.

value: Eskalar bat, bektore bat edo matrize bat, barrutiko gelaxka bakoitzerako balio berriak dituena. Balio berriek kateak, zenbakizko balioak edo datak izan behar dute. Beste motak erabiltzen badira, gelaxkak hustu egingo dira.

Barruti osoa eguneratuko da eta orriaren gainerakoa aldaketarik gabe mantenduko da. value balioaren tamaina targetrange balioarena baino txikiagoa bada, gainerako gelaxkak hustu egingo dira.

value balioaren tamaina targetrange balioarena baino handiagoa bada, orduan value partzialki soilik kopiatuko da targetrange elementuaren tamaina bete arte.

Bektoreak bertikalean hedatzen dira, salbu eta targetrange parametroak errenkada bakar bateko altuera badu.

### Adibidea:

##### Basic lengoaian

        oDoc.SetValue("A1", 2)
        'Behean, Value matrizea TargetRange baino txikiagoa da (gainerako gelaxkak hustu egingo dira)
        oDoc.SetValue("A1:F1", Array(1, 2, 3))
        'Behean, Value eta TargetRange barrutiek tamaina bera dute
        oDoc.SetValue("A1:D2", SF_Array.AppendRow(Array(1, 2, 3, 4), Array(5, 6, 7, 8)))

Errenkada bakarra balioekin bete nahi izanez gero, Offset funtzioa erabili daiteke. Beheko adibidean, kontuan hartu arrData dimentsio bakarreko matrizea dela:

        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)

##### Python lengoaian

        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

Emandako gelaxka-barruti bat beherantz eramaten du, hutsik dauden errenkadak txertatuta. Uneko hautapenak ez du aldaketarik jasango.

wholerow argumentuaren balioaren arabera, txertatutako errenkadek zehaztutako barrutiaren zabalera hartu dezakete edo errenkadako zutabe guztiak hartu ditzakete.

Metodo honek hasierako barrutiaren kokaleku berria adierazten duen kate bat itzultzen du.

Lekuz aldatutako barrutiak orriaren ertzak gainditzen baditu, ez da ezer gertatuko.

### Sintaxia:

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

### Parametroak:

range: Gelaxkak gainean txertatuko zaizkion barrutia, kate gisa.

wholerow: False (balio lehenetsia) ezartzen bada, txertatutako errenkaden zabalera zehaztutako range barrutiaren zabalera bera izango da. Bestela, txertatutako errenkadak orriko zutabe guztiak hartuko ditu.

rows: Txertatuko den errenkada kopurua. Balio lehenetsia jatorrizko range barrutiaren altuera da. Errenkada kopuruak zenbaki positiboa izan behar du.

### Adibidea:

##### Basic lengoaian

        ' "A3:D3" barrutia beherantz eramaten du errenkada batez; A eta D arteko zutabeak soilik aldatzen ditu
        oDoc.ShiftDown("A3:D3")
        ' Txertatutako errenkadak orriko zutabe guztiak hartzen ditu
        oDoc.ShiftDown("A3:D3", WholeRow := True)
        ' "A3:D3" barrutia beherantz eramaten du bost errenkadaz
        oDoc.ShiftDown("A3:D3", Rows := 5)
        ' "A3:D10" barrutia beherantz eramaten du bi errenkadaz eta jatorrizko barrutiaren kokaleku berria erakusten du
        Dim sNewRange as String
        sNewRange = oDoc.ShiftDown("A3:D10", Rows := 2)
        MsgBox sNewRange   ' $Sheet1.$A$5:$D$12

##### Python lengoaian

        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

Emandako barruti bateko ezkerreko zutabeak ezabatzen ditu eta ezabaketa gertatu den barrutiaren ezkerreko gelaxka guztiak eskuinerantz eramaten ditu. Uneko hautapenak ez du aldaketarik izango.

wholecolumn argumentuaren balioaren arabera, ezabatutako zutabeek zehaztutako barrutiaren altuera hartu dezakete edo zutabeko errenkada guztiak hartu ditzakete.

Metodo honek hasierako barrutitik geratzen den zatiaren kokalekua adierazten duen kate bat itzultzen du. Jatorrizko barrutiko gelaxka guztiak ezabatu badira, hutsik dagoen kate bat itzuliko da.

### Sintaxia:

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

### Parametroak:

range: Gelaxkak ezabatuko diren barrutia, kate gisa.

wholecolumn: False (balio lehenetsia) ezartzen bada, ezabatutako zutabeen altuera zehaztutako range barrutiaren altuera bera izango da. Bestela, ezabatutako zutabeek orriko errenkada guztiak hartuko dituzte.

columns: Zenbat zutabe ezabatuko diren zehaztutako range barrutitik. Balio lehenetsia jatorrizko range barrutiaren zabalera da, eta balio hori bera argumentu honen gehieneko balioa da.

### Adibidea:

##### Basic lengoaian

        ' "B3:B6" barrutia ezabatzen du; eskuineko gelaxka guztiak ezkerrera eramaten ditu
        oDoc.ShiftLeft("B3:B6")
        ' "A3:D6" barrutiko lehen zutabea ezabatzen du
        oDoc.ShiftLeft("A3:D6", Columns := 1)
        ' Ezabatutako zutabeak (A eta D artekoak) orriaren errenkada guztiak hartzen ditu
        oDoc.ShiftLeft("A3:D6", WholeColumn := True)

##### Python lengoaian

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

## ShiftUp

Emandako barruti bateko goiko errenkadak ezabatzen ditu eta ezabaketa gertatu den barrutiaren azpiko gelaxka guztiak gorantz eramaten ditu. Uneko hautapenak ez du aldaketarik izango.

wholerow argumentuaren balioaren arabera, ezabatutako errenkadek zehaztutako barrutiaren zabalera hartu dezakete edo errenkadako zutabe guztiak hartu ditzakete.

Metodo honek hasierako barrutitik geratzen den zatiaren kokalekua adierazten duen kate bat itzultzen du. Jatorrizko barrutiko gelaxka guztiak ezabatu badira, hutsik dagoen kate bat itzuliko da.

### Sintaxia:

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

### Parametroak:

range: Gelaxkak ezabatuko diren barrutia, kate gisa.

wholerow: False (balio lehenetsia) ezartzen bada, ezabatutako errenkaden zabalera zehaztutako range barrutiaren zabalera bera izango da. Bestela, ezabatutako errenkadak orriko zutabe guztiak hartuko ditu.

rows: Zenbat errenkada ezabatuko diren zehaztutako range barrutitik. Balio lehenetsia jatorrizko range barrutiaren altuera da, eta balio hori bera argumentu honen gehieneko balioa da.

### Adibidea:

##### Basic lengoaian

        ' "A3:D3" barrutia ezabatzen du; azpiko gelaxka guztiak errenkada bat igotzen ditu
        oDoc.ShiftUp("A3:D3")
        ' "A3:D6" barrutiko lehen errenkada ezabatzen du
        oDoc.ShiftUp("A3:D6", Rows := 1)
        ' Ezabatutako errenkadek orriko zutabe guztiak hartzen dituzte
        oDoc.ShiftUp("A3:D6", WholeRow := True)

##### Python lengoaian

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

## ShiftRight

Emandako gelaxka-barruti bat eskuinerantz eramaten du, hutsik dauden zutabeak txertatuta. Uneko hautapenak ez du aldaketarik jasango.

wholecolumn argumentuaren balioaren arabera, txertatutako zutabeek zehaztutako barrutiaren altuera hartu dezakete edo zutabeko errenkada guztiak hartu ditzakete.

Metodo honek hasierako barrutiaren kokaleku berria adierazten duen kate bat itzultzen du.

Lekuz aldatutako barrutiak orriaren ertzak gainditzen baditu, ez da ezer gertatuko.

### Sintaxia:

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

### Parametroak:

range: Ezkerrean hutsik dauden zutabeak txertatuko zaizkion barrutia, kate gisa.

wholecolumn: False (balio lehenetsia) ezartzen bada, txertatutako zutabeen altuera zehaztutako range barrutiaren altuera bera izango da. Bestela, txertatutako zutabeek orriko errenkada guztiak hartuko dituzte.

columns: Txertatuko den zutabe kopurua. Balio lehenetsia jatorrizko range barrutiaren zabalera da.

### Adibidea:

##### Basic lengoaian

        ' "A3:A6" barrutia eskuinera eramaten du zutabe batez; 3 eta 6 arteko errenkadetan soilik du eragina
        oDoc.ShiftRight("A3:A6")
        ' "A3:A6" barrutia eskuinerantz eramaten du bost zutabez
        oDoc.ShiftRight("A3:A6", Columns := 5)
        ' Txertatutako zutabeak orriaren errenkada guztiak hartzen ditu
        oDoc.ShiftRight("A3:A6", WholeColumn := True)

##### Python lengoaian

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

## SortRange

Sort the given range on any number of columns/rows. The sorting order may vary by column/row. If the number of sort keys is > 3 then the range is sorted several times, by groups of 3 keys, starting from the last key. It returns a string representing the modified range of cells. The size of the modified area is fully determined by the size of the source area.

### Sintaxia:

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

### Parametroak:

range: Ordenatuko den barrutia, kate gisa.

sortkeys: A scalar (if 1 column/row) or an array of column/row numbers starting from 1.

sortorder: A scalar or an array of strings containing the values "ASC" (ascending), "DESC" (descending). Each item is paired with the corresponding item in sortkeys. If the sortorder array is shorter than sortkeys, the remaining keys are sorted in ascending order.

destinationcell: Ordenatutako gelaxka-barrutiaren helburuko gelaxka, kate gisa. Barruti bat ematen bada, goiko ezkerreko gelaxka soilik erabiliko da. Modu lehenetsian, iturburuko barrutia gainidatzi egingo da.

containsheader: True bada, lehen errenkada/zutabea ez da ordenatuko.

casesensitive: Kate-konparazioetarako soilik. Balio lehenetsia = False

sortcolumns: When True, the columns are sorted from left to right. Default = False: rows are sorted from top to bottom.

### Adibidea:

##### Basic lengoaian

        'Ordenatu barrutia A zutabean (gorantz) eta C zutabean (beherantz) oinarrituta
        oDoc.SortRange("A2:J200", Array(1, 3), Array("ASC", "DESC"), CaseSensitive := True)

##### Python lengoaian

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

Azpimarraren karaktere bat, "_", aurrizki gisa duten ScriptForge Basic errutina edo identifikatzaile guztiak barneko erabilerarako erreserbatuta daude. Ez dira Basic makroetan edo Python scriptetan erabili behar.

Erlazionatutako gaiak

SFDocuments.Chart zerbitzua

SFDocuments.Document zerbitzua

ScriptForge.UI zerbitzua

Emaguzu laguntza!