Doplnky pre programovanie v LibreOffice Calc

warning

Spôsob rozširovania Calcu pomocou doplnkov, ktorý je popísaný nasledujúcimi časťami, je zastaraný. Rozhrania sú stále platné a podporované, aby bola zaistená kompatibilita s existujúcimi doplnkami, ale pre programovanie nových doplnkov by ste mali použiť funkciu API.


LibreOffice Calc can be expanded by Add-Ins, which are external programming modules providing additional functions for working with spreadsheets. These are listed in the Function Wizard in the Add-In category. If you would like to program an Add-In yourself, you can learn here which functions must be exported by the so that the Add-In can be successfully attached.

LibreOffice searches the Add-in folder defined in the configuration for a suitable . To be recognized by LibreOffice, the must have certain properties, as explained in the following. This information allows you to program your own Add-In for Function Wizard of LibreOffice Calc.

Princíp doplnkov

Každá knižnica doplnkov poskytuje niekoľko funkcií. Niektoré funkcie sa používajú na účely administrácie. Na svoje funkcie môžete použiť takmer akýkoľvek názov. Musíte však dodržať určité pravidlá na predávanie parametrov. presná konvencia pomenovaní a volaní sa líši pre rôzne platformy.

Functions of

Musí existovať minimálne administratívna funkcia GetFunctionCount a GetFunctionDataPomocou týchto funkcií je možné určiť ďalšie funkcie, typy parametrov a návratové hodnoty. Pre návratové hodnoty sú podporované typy Double a String. Ako parametre sú naviac podporované oblasti buniekDouble Array, String Array, and Cell Array are supported.

Parametre sa predávajú odkazom. Preto je v podstate možné zmeniť ich hodnoty. Ale LibreOffice Calc túto vlastnosť nepodporuje, pretože v zošitoch nemá zmysel.

Knižnice je možné kedykoľvek za behu znova načítať a analyzovať ich obsah pomocou administratívnych funkcií.Pre každú funkciu sú k dispozícií informácie o počte a typoch parametrov, interný a externý názov funkcie a administratívne číslo funkcie.

Funkcie sú volané súčasne (synchrónne) a výsledok vracajú okamžite. Sú možné aj funkcie reálneho času (asynchrónne funkcie), tie tu nič menej vďaka svojej zložitosti nie sú podrobnejšie vysvetlené.

Všeobecné informácie o rozhraní.

Maximálny počet parametrov v integrovanej funkcii LibreOffice Calc AddIn je 16: jedna návratová hodnota a maximálne 15 vstupných parametrov.

Dátové typy sú definované takto:

Dátové typy

Definícia

CALLTYPE

Systém Windows: FAR PASCAL (_far _pascal)

Iné: výstupná (podľa operačného systému)

USHORT

2bajtové celé kladné číslo

DOUBLE

8bajtový formát podľa platformy

Paramtype

Int podľa platformy

PTR_DOUBLE =0 ukazovateľ na typ double

PTR_STRING =1 ukazovateľ na reťazec zakončený 0

PTR_DOUBLE_ARR =2 ukazovateľ na pole typu double

PTR_STRING_ARR =3 ukazovateľ na pole reťazcov

PTR_CELL_ARR =4 ukazovateľ na pole buniek

NONE =5


functions

Following you will find a description of those functions, which are called at the .

For all functions, the following applies:

void CALLTYPE fn(out, in1, in2, ...)

Output: Resulting value

Input: Any number of types (double&, char*, double*, char**, Cell area), where the Cell area is an array of types double array, string array, or cell array.

GetFunctionCount()

Vracia počet bez administratívnej funkcie referenčného parametra. Každá funkcia má jedinečné číslo od 0 do nCount-1. Toto číslo je potrebné na funkciu GetFunctionData a GetParameterDescription posledné funkcie.

Syntax

void CALLTYPE GetFunctionCount(USHORT& nCount)

Parameter

USHORT &nCount:

Output: Reference to a variable, which is supposed to contain the number of Add-In functions. For example: If the Add-In provides 5 functions for LibreOffice Calc, then nCount=5.

GetFunctionData()

Zisti všetky dôležité informácie o funkcií doplnkov

Syntax

void CALLTYPE GetFunctionData(USHORT& nNo, char* pFuncName, USHORT& nParamCount, Paramtype* peType, char* pInternalName)

Parameter

USHORT& nNo:

Input: Function number between 0 and nCount-1, inclusively.

char* pFuncName:

Output: Function name as seen by the programmer, as it is named in the . This name does not determine the name used in the Function Wizard.

USHORT& nParamCount:

Output: Number of parameters in AddIn function. This number must be greater than 0, because there is always a result value; the maximum value is 16.

Paramtype* peType:

Output: Pointer to an array of exactly 16 variables of type Paramtype. The first nParamCount entries are filled with the suitable type of parameter.

char* pInternalName:

Output: Function name as seen by the user, as it appears in the Function Wizard. May contain umlauts.

Parametre pFuncName a pInternalName sú polia znakov, ktoré sú v LibreOffice Calc implementované vo veľkosti 256.

GetParameterDescription()

Poskytuje krátky popis funkcie doplnkov a ich parametrov. Voliteľne je možné použiť túto funkciu na zobrazenie popisu funkcie a parametrov v Sprievodcovi funkcií.

Syntax

void CALLTYPE GetParameterDescription(USHORT& nNo, USHORT& nParam, char* pName, char* pDesc)

Parameter

USHORT& nNo:

Input: Number of the function in the library; between 0 and nCount-1.

USHORT& nParam:

Input: Indicates, for which parameter the description is provided; parameters start at 1. If nParam is 0, the description itself is supposed to be provided in pDesc; in this case, pName does not have any meaning.

char* pName:

Output: Takes up the parameter name or type, for example, the word "Number" or "String" or "Date", and so on. Implemented in LibreOffice Calc as char[256].

char* pDesc:

Output: Takes up the description of the parameter, for example, "Value, at which the universe is to be calculated." Implemented in LibreOffice Calc as char[256].

pName a pDesc sú polia znakov; v LibreOffice Calc implemntované vo veľkosti 256. Poznámka: miesto dostupné v Sprievodca funkcií je obmedzené, nie je možné naplno využiť všetkých 256 znakov.

Oblasti buniek

Nasledujúce tabuľky obsahujú informácie o tom, aké dátové štruktúry musí externý programový modul poskytovať, aby bolo možné predávať oblasti buniek. LibreOffice Calc rozlišuje medzi tromi rôznymi poľami (v závislosti na dátovom type).

Pole typu Double

Ako parameter je možné predať oblasť buniek s hodnotami typu Number/Double. Pole typu double je v LibreOffice Calc definované takto:

Offset

Name

Description

0

Stĺp1

Číslo stĺpca v ľavom hornom rohu oblasti buniek. Číslovanie začína číslom 0.

2

Riadok1

Číslo riadku v ľavom hornom rohu oblasti buniek. Číslovanie začína číslom 0.

4

Tab1

Číslo tabuľky v ľavom hornom rohu oblasti buniek. Číslovanie začína číslom 0.

6

Stĺp2

Číslo stĺpca v pravom dolnom rohu oblasti buniek. Číslovanie začína číslom 0.

8

Riadok2

Číslo riadku v pravom dolnom rohu oblasti buniek. Číslovanie začína číslom 0.

10

Tab2

Číslo tabuľky v pravom dolnom rohu oblasti buniek. Číslovanie začína číslom 0.

12

Počet

Počet prvkov, ktoré nasledujú. Prázdne bunky nie sú započítané ani predávané.

14

Stĺp.

Číslo stĺpca daného prvku. Číslovanie začína číslom 0.

16

Riadok

Číslo riadku daného prvku. Číslovanie začína číslom 0.

18

Tabulátor

Číslo tabuľky daného prvku. Číslovanie začína číslom 0.

20

Chyba

Číslo chyby. Hodnota 0 má význam "bez chyby". Ak pochádza prvok z bunky obsahujúci vzorec, je hodnota chyby daná vzorcom.

22

Hodnota

8bajtová premenná typu IEEE typu double s plávajúcou desatinnou čiarkou

30

...

Ďalší prvok


Pole reťazcov

Oblasť buniek, ktorá obsahuje hodnoty typu Text a predáva sa ako pole reťazcov. Pole typu string je v LibreOffice Calc definované takto:

Offset

Name

Description

0

Stĺp1

Číslo stĺpca v ľavom hornom rohu oblasti buniek. Číslovanie začína číslom 0.

2

Riadok1

Číslo riadku v ľavom hornom rohu oblasti buniek. Číslovanie začína číslom 0.

4

Tab1

Číslo tabuľky v ľavom hornom rohu oblasti buniek. Číslovanie začína číslom 0.

6

Stĺp2

Číslo stĺpca v pravom dolnom rohu oblasti buniek. Číslovanie začína číslom 0.

8

Riadok2

Číslo riadku v pravom dolnom rohu oblasti buniek. Číslovanie začína číslom 0.

10

Tab2

Číslo tabuľky v pravom dolnom rohu oblasti buniek. Číslovanie začína číslom 0.

12

Počet

Počet prvkov, ktoré nasledujú. Prázdne bunky nie sú započítané ani predávané.

14

Stĺp.

Číslo stĺpca daného prvku. Číslovanie začína číslom 0.

16

Riadok

Číslo riadku daného prvku. Číslovanie začína číslom 0.

18

Tabulátor

Číslo tabuľky daného prvku. Číslovanie začína číslom 0.

20

Chyba

Číslo chyby. Hodnota 0 má význam "bez chyby". Ak pochádza prvok z bunky obsahujúci vzorec, je hodnota chyby daná vzorcom.

22

Len

Dĺžka nasledujúceho reťazca vrátane záverečného nulového bajtu. Ak má dĺžka vrátane záverečného nulového bajtu nepárnu hodnotu, je do reťazca pridaný druhý nulový bajt, aby mala dĺžka párnu hodnotu. Parameter Len sa potom vypočíta podľa vzorca ((StrLen+2)&~1).

24

Reťazec

Reťazec, ktorý je zakončený nulovým bajtom.

24+Len

...

Ďalší prvok


Pole buniek

Pole buniek sa používa ako odkaz na bunky, ktoré obsahujú text a čísla. Pole buniek je v LibreOffice Calc definované takto:

Offset

Name

Description

0

Stĺp1

Číslo stĺpca v ľavom hornom rohu oblasti buniek. Číslovanie začína číslom 0.

2

Riadok1

Číslo riadku v ľavom hornom rohu oblasti buniek. Číslovanie začína číslom 0.

4

Tab1

Číslo tabuľky v ľavom hornom rohu oblasti buniek. Číslovanie začína číslom 0.

6

Stĺp2

Číslo stĺpca v pravom dolnom rohu oblasti buniek. Číslovanie začína číslom 0.

8

Riadok2

Číslo riadku v pravom dolnom rohu oblasti buniek. Číslovanie začína číslom 0.

10

Tab2

Číslo tabuľky v pravom dolnom rohu oblasti buniek. Číslovanie začína číslom 0.

12

Počet

Počet prvkov, ktoré nasledujú. Prázdne bunky nie sú započítané ani predávané.

14

Stĺp.

Číslo stĺpca daného prvku. Číslovanie začína číslom 0.

16

Riadok

Číslo riadku daného prvku. Číslovanie začína číslom 0.

18

Tabulátor

Číslo tabuľky daného prvku. Číslovanie začína číslom 0.

20

Chyba

Číslo chyby. Hodnota 0 má význam "bez chyby". Ak pochádza prvok z bunky obsahujúci vzorec, je hodnota chyby daná vzorcom.

22

Typ

Typ obsahu bunky, 0 == Double, 1 == Reťazec

24

Value alebo Len

Ak je Type == 0: 8bajtová premenná IEEE typu double s plávajúcou desatinnou čiarkou

Ak je Type == 1: Dĺžka nasledujúceho reťazca vrátane záverečného nulového bajtu. AK má dĺžka vrátane záverečného nulového bajtu nepárnu hodnotu, je do reťazca pridaný druhý nulový bajt, aby mala dĺžka párnu hodnotu. Parameter Len sa potom vypočíta podľa vzorca ((StrLen+2)&~1).

26 ak type==1

Reťazec

Ak Type == 1:Reťazec, ktorý je zakončený nulovým bajtom.

32 alebo 26+Len

...

Ďalší prvok


Please support us!