Add-in para sa Programming sa LibreOffice Calc

warning

Ang paraan ng pagpapalawak ng Calc sa pamamagitan ng Mga Add-In na inilalarawan sa mga sumusunod ay luma na. Ang mga interface ay wasto at suportado pa rin, upang matiyak ang pagiging tugma sa mga kasalukuyang Add-In, ngunit para sa pagprograma ng mga bagong Add-In, dapat mong gamitin ang bagong Mga function ng API .


Maaaring palawakin ang LibreOffice Calc sa pamamagitan ng Add-Ins, na mga external programming module na nagbibigay ng mga karagdagang function para sa pagtatrabaho sa mga spreadsheet. Ang mga ito ay nakalista sa Function Wizard sa Add-In kategorya. Kung gusto mong mag-program ng isang Add-In sa iyong sarili, maaari mong malaman dito kung aling mga function ang dapat i-export ng upang matagumpay na mailakip ang Add-In.

Hinahanap ng LibreOffice ang Add-in na folder na tinukoy sa configuration para sa angkop . Upang makilala ni LibreOffice, ang dapat magkaroon ng ilang partikular na katangian, gaya ng ipinaliwanag sa mga sumusunod. Binibigyang-daan ka ng impormasyong ito na i-program ang sarili mong Add-In para sa Function Wizard ng LibreOffice Calc.

Ang Add-In Concept

Ang bawat Add-In library ay nagbibigay ng ilang mga function. Ang ilang mga function ay ginagamit para sa mga layuning pang-administratibo. Maaari kang pumili ng halos anumang pangalan para sa iyong sariling mga function. Gayunpaman, dapat din nilang sundin ang ilang mga patakaran tungkol sa pagpasa ng parameter. Ang eksaktong pagpapangalan at pagtawag sa mga convention ay nag-iiba para sa iba't ibang mga platform.

Mga tungkulin ng

Sa pinakamababa, ang mga administratibong pag-andar GetFunctionCount at GetFunctionData dapat umiral. Gamit ang mga ito, matutukoy ang mga function pati na rin ang mga uri ng parameter at mga return value. Bilang mga return value, sinusuportahan ang mga uri ng Double at String. Bilang mga parameter, bilang karagdagan sa mga lugar ng cell Dobleng Array , String Array , at Cell Array ay suportado.

Ang mga parameter ay ipinasa gamit ang mga sanggunian. Samakatuwid, ang pagbabago ng mga halagang ito ay karaniwang posible. Gayunpaman, hindi ito sinusuportahan sa LibreOffice Calc dahil hindi ito makatuwiran sa loob ng mga spreadsheet.

Ang mga aklatan ay maaaring i-reload sa panahon ng runtime at ang kanilang mga nilalaman ay maaaring masuri ng mga administratibong function. Para sa bawat function, available ang impormasyon tungkol sa bilang at uri ng mga parameter, panloob at panlabas na pangalan ng function at isang administratibong numero.

Ang mga function ay tinatawag na sabay-sabay at ibinabalik kaagad ang kanilang mga resulta. Ang mga real time function (asynchronous function) ay posible rin; gayunpaman, hindi sila ipinaliwanag nang detalyado dahil sa kanilang pagiging kumplikado.

Pangkalahatang impormasyon tungkol sa interface

Ang maximum na bilang ng mga parameter sa isang Add-In function na naka-attach sa LibreOffice Calc ay 16: isang return value at maximum na 15 function input parameters.

Ang mga uri ng data ay tinukoy bilang mga sumusunod:

Mga uri ng data

Kahulugan

CALLTYPE

Sa ilalim ng Windows: FAR PASCAL (_far _pascal)

Iba pa: default (default na partikular sa operating system)

USHORT

2 Byte unsigned Integer

DOUBLE

8 byte na format na umaasa sa platform

Paramtype

Nakadepende sa platform tulad ng int

PTR_DOUBLE =0 pointer sa double

PTR_STRING =1 pointer sa isang zero-terminated string

PTR_DOUBLE_ARR =2 pointer sa double array

PTR_STRING_ARR =3 pointer sa isang string array

PTR_CELL_ARR =4 na pointer sa isang cell array

WALA =5


mga function

Kasunod ay makikita mo ang isang paglalarawan ng mga function na iyon, na tinatawag sa .

Para sa lahat function, ang mga sumusunod ay nalalapat:

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

Output : Nagreresultang halaga

Input : Anumang bilang ng mga uri (double&, char*, double*, char**, Cell area), kung saan ang Lugar ng cell ay isang array ng mga uri ng double array, string array, o cell array.

GetFunctionCount()

Ibinabalik ang bilang ng mga function nang walang mga function ng pamamahala ng reference na parameter. Ang bawat function ay may natatanging numero sa pagitan ng 0 at nCount-1. Ang numerong ito ay kakailanganin para sa GetFunctionData at GetParameterDescription function mamaya.

Syntax

void CALLTYPE GetFunctionCount(USHORT& nCount)

Parameter

USHORT &nCount:

Output : Sanggunian sa isang variable, na dapat ay naglalaman ng bilang ng mga Add-In function. Halimbawa: Kung ang Add-In ay nagbibigay ng 5 function para sa LibreOffice Calc, kung gayon nCount=5.

GetFunctionData()

Tinutukoy ang lahat ng mahalagang impormasyon tungkol sa isang Add-In function.

Syntax

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

Parameter

USHORT& nNo:

Input : Numero ng function sa pagitan ng 0 at nCount-1, kasama.

char* pFuncName:

Output : Pangalan ng function na nakikita ng programmer, dahil pinangalanan ito sa . Hindi tinutukoy ng pangalang ito ang pangalang ginamit sa Function Wizard .

USHORT& nParamCount:

Output : Bilang ng mga parameter sa AddIn function. Ang numerong ito ay dapat na mas malaki kaysa sa 0, dahil palaging may halaga ng resulta; ang maximum na halaga ay 16.

Paramtype* peType:

Output : Pointer sa isang array ng eksaktong 16 na variable ng uri ng Paramtype. Ang mga unang entry ng nParamCount ay puno ng angkop na uri ng parameter.

char* pInternalName:

Output : Pangalan ng function na nakikita ng user, tulad ng makikita sa Function Wizard . Maaaring naglalaman ng mga umlaut.

Ang mga parameter ng pFuncName at pInternalName ay mga char array, na ipinapatupad na may sukat na 256 sa LibreOffice Calc.

GetParameterDescription()

Nagbibigay ng maikling paglalarawan ng Add-In function at mga parameter nito. Bilang isang opsyon, ang function na ito ay maaaring gamitin upang magpakita ng isang function at paglalarawan ng parameter sa Function Wizard .

Syntax

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

Parameter

USHORT& nNo:

Input : Bilang ng function sa library; sa pagitan ng 0 at nCount-1.

USHORT& nParam:

Input : Isinasaad, para sa kung aling parameter ang paglalarawan ay ibinigay; ang mga parameter ay nagsisimula sa 1. Kung ang nParam ay 0, ang paglalarawan mismo ay dapat na ibigay sa pDesc; sa kasong ito, ang pName ay walang anumang kahulugan.

char* pName:

Output : Kinukuha ang pangalan o uri ng parameter, halimbawa, ang salitang "Number" o "String" o "Petsa", at iba pa. Ipinatupad sa LibreOffice Calc bilang char[256].

char* pDesc:

Output : Kinukuha ang paglalarawan ng parameter, halimbawa, "Halaga, kung saan kinakalkula ang uniberso." Ipinatupad sa LibreOffice Calc bilang char[256].

Ang pName at pDesc ay mga char array; ipinatupad sa LibreOffice Calc na may sukat na 256. Pakitandaan na available ang espasyo sa Function Wizard ay limitado at ang 256 na mga character ay hindi ganap na magagamit.

Mga lugar ng cell

Ang mga sumusunod na talahanayan ay naglalaman ng impormasyon tungkol sa kung aling mga istruktura ng data ang dapat ibigay ng isang panlabas na module ng programa upang makapasa sa mga lugar ng cell. Ang LibreOffice Calc ay nakikilala sa pagitan ng tatlong magkakaibang array, depende sa uri ng data.

Dobleng Array

Bilang isang parameter, maaaring maipasa ang isang cell area na may mga value na Number/Double type. Ang isang double array sa LibreOffice Calc ay tinukoy bilang sumusunod:

Offset

Pangalan

Mga nilalaman

0

Col1

Numero ng column sa kaliwang sulok sa itaas ng cell area. Nagsisimula ang pagnunumero sa 0.

2

Hanay1

Numero ng hilera sa kaliwang sulok sa itaas ng lugar ng cell; nagsisimula ang pagnunumero sa 0.

4

Tab1

Numero ng talahanayan sa kaliwang sulok sa itaas ng lugar ng cell; nagsisimula ang pagnunumero sa 0.

6

Col2

Numero ng column sa kanang sulok sa ibaba ng cell area. Nagsisimula ang pagnunumero sa 0.

8

Row2

Numero ng hilera sa kanang sulok sa ibaba ng cell area; nagsisimula ang pagnunumero sa 0.

10

Tab2

Numero ng talahanayan sa kanang sulok sa ibaba ng cell area; nagsisimula ang pagnunumero sa 0.

12

Bilang

Bilang ng mga sumusunod na elemento. Ang mga walang laman na cell ay hindi binibilang o naipasa.

14

Sinabi ni Col

Numero ng column ng elemento. Nagsisimula ang pagnunumero sa 0.

16

hilera

Numero ng hilera ng elemento; nagsisimula ang pagnunumero sa 0.

18

Tab

Numero ng talahanayan ng elemento; nagsisimula ang pagnunumero sa 0.

20

Pagkakamali

Numero ng error, kung saan ang value na 0 ay tinukoy bilang "walang error." Kung ang elemento ay nagmula sa isang formula cell, ang halaga ng error ay tinutukoy ng formula.

22

Halaga

8 byte IEEE variable ng uri double/floating point

30

...

Susunod na elemento


String Array

Isang cell area, na naglalaman ng mga value ng uri ng data na Text at ipinapasa bilang string array. Ang isang string array sa LibreOffice Calc ay tinukoy bilang sumusunod:

Offset

Pangalan

Mga nilalaman

0

Col1

Numero ng column sa kaliwang sulok sa itaas ng cell area. Nagsisimula ang pagnunumero sa 0.

2

Hanay1

Numero ng hilera sa kaliwang sulok sa itaas ng lugar ng cell; nagsisimula ang pagnunumero sa 0.

4

Tab1

Numero ng talahanayan sa kaliwang sulok sa itaas ng lugar ng cell; nagsisimula ang pagnunumero sa 0.

6

Col2

Numero ng column sa kanang sulok sa ibaba ng cell area. Nagsisimula ang pagnunumero sa 0.

8

Row2

Numero ng hilera sa kanang sulok sa ibaba ng cell area; nagsisimula ang pagnunumero sa 0.

10

Tab2

Numero ng talahanayan sa kanang sulok sa ibaba ng cell area; nagsisimula ang pagnunumero sa 0.

12

Bilang

Bilang ng mga sumusunod na elemento. Ang mga walang laman na cell ay hindi binibilang o naipasa.

14

Sinabi ni Col

Numero ng column ng elemento. Nagsisimula ang pagnunumero sa 0.

16

hilera

Numero ng hilera ng elemento; nagsisimula ang pagnunumero sa 0.

18

Tab

Numero ng talahanayan ng elemento; nagsisimula ang pagnunumero sa 0.

20

Pagkakamali

Numero ng error, kung saan ang value na 0 ay tinukoy bilang "walang error." Kung ang elemento ay nagmula sa isang formula cell, ang halaga ng error ay tinutukoy ng formula.

22

Len

Haba ng sumusunod na string, kabilang ang pagsasara ng zero byte. Kung ang haba kasama ang pagsasara ng zero byte ay katumbas ng isang kakaibang halaga, isang pangalawang zero byte ang idinaragdag sa string upang magkaroon ng pantay na halaga. Samakatuwid, kinakalkula ang Len gamit ang ((StrLen+2)&~1).

24

String

String na may pagsasara ng zero byte

24+Len

...

Susunod na elemento


Cell Array

Ginagamit ang mga cell array para tawagan ang mga cell area na naglalaman ng text pati na rin ang mga numero. Ang isang cell array sa LibreOffice Calc ay tinukoy bilang sumusunod:

Offset

Pangalan

Mga nilalaman

0

Col1

Numero ng column sa kaliwang sulok sa itaas ng cell area. Nagsisimula ang pagnunumero sa 0.

2

Hanay1

Numero ng hilera sa kaliwang sulok sa itaas ng lugar ng cell; nagsisimula ang pagnunumero sa 0.

4

Tab1

Numero ng talahanayan sa kaliwang sulok sa itaas ng lugar ng cell; nagsisimula ang pagnunumero sa 0.

6

Col2

Numero ng column sa kanang sulok sa ibaba ng cell area. Nagsisimula ang pagnunumero sa 0.

8

Row2

Numero ng hilera sa kanang sulok sa ibaba ng cell area; nagsisimula ang pagnunumero sa 0.

10

Tab2

Numero ng talahanayan sa kanang sulok sa ibaba ng cell area; nagsisimula ang pagnunumero sa 0.

12

Bilang

Bilang ng mga sumusunod na elemento. Ang mga walang laman na cell ay hindi binibilang o naipasa.

14

Sinabi ni Col

Numero ng column ng elemento. Nagsisimula ang pagnunumero sa 0.

16

hilera

Numero ng hilera ng elemento; nagsisimula ang pagnunumero sa 0.

18

Tab

Numero ng talahanayan ng elemento; nagsisimula ang pagnunumero sa 0.

20

Pagkakamali

Numero ng error, kung saan ang value na 0 ay tinukoy bilang "walang error." Kung ang elemento ay nagmula sa isang formula cell, ang halaga ng error ay tinutukoy ng formula.

22

Type

Uri ng nilalaman ng cell, 0 == Doble, 1 == String

24

Halaga o Len

Kung uri == 0: 8 byte IEEE variable ng uri double/floating point

Kung uri == 1: Haba ng sumusunod na string, kasama ang pagsasara ng zero byte. Kung ang haba kasama ang pagsasara ng zero byte ay katumbas ng isang kakaibang halaga, isang pangalawang zero byte ang idinaragdag sa string upang magkaroon ng pantay na halaga. Samakatuwid, kinakalkula ang Len gamit ang ((StrLen+2)&~1).

26 kung uri==1

String

Kung uri == 1: String na may pagsasara ng zero byte

32 o 26+Len

...

Susunod na elemento


Mangyaring suportahan kami!