सामाग्री

# LibreOffice क्याल्कमा प्रोग्रामिङ्गका लागि थप्नुहोस्

Add-Insद्वारा क्याल्क फैलाउने विधि यो तल दिएको अद्यावधिकमा वर्णन गरिन्छ । अवस्थित रहेको Add-Ins सहित अनुकूलता निश्चित गर्नलाई यि इन्टरफेसहरू पहिले देखिनै वैध र समर्थित हुन्छन् । तर प्रोग्रामिङ नयाँ Add-Ins का लागि तपाईँंले नयाँ 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 shared libraryexternal DLL so that the Add-In can be successfully attached.

LibreOffice searches the Add-in folder defined in the configuration for a suitable shared libraryDLL. To be recognized by LibreOffice, the shared libraryDLL 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.

## Add-In धारणा

प्रत्येक Add-In लाइब्रेरीले पृथक प्रकार्यहरू उपलब्ध गराउँदछन् । केही प्रकार्यहरू प्रशासनिक उद्देश्यहरूका लागि प्रयोग हुन्छन् । तपाईँं लगभग कुनैनाम तपाईँं आफ्नै प्रकार्यका लागि रोज्न सक्नुहुन्छ । यद्यपि, तिनीहरूले परामिति पास गर्दा पनि निश्चित नियम ख्याल गरेर पालना गर्न जरुरी छ । फरक प्लेटफर्महरूका लागि निश्चित नाम राख्ने र बोलाउने प्रथाहरू फरक हुन्छन।

### Functions of Shared LibraryAddIn DLL

न्यूनतममा, प्रशासनिक प्रकार्यहरू GetFunctionCount and GetFunctionDataनिकाल्नु पर्दछ । तिनीहरूलाई प्रयोग गर्दा, परामिति प्रकार जत्तिकै प्रकार्यहरू र निर्धारण गर्न सकिने मानहरू फर्काउँदछ । फर्कने मानहरूको रूपमा, डबल र स्ट्रिङ प्रकारहरूले समर्थन गर्दछन । परामितिहरूको रूपमा, अतिरिक्त कक्ष क्षेत्रहरूडबल एरे, स्ट्रिङ एरे, र कक्ष एरे समर्थन गर्दछन् ।

सन्दर्भहरू प्रयोग हुँदा परामितिहरूले पासगर्दछन् । त्यसकारण,ती मानहरूको परिवर्तन गर्न सामान्यत: सम्भव हुन्छ । यद्यपी,यसले LibreOffice क्याल्क समर्थन गर्दैन किन भने यसले स्प्रेडसिटहरू भित्र अर्थ युक्त काम गर्दैन ।

रनटाइमको बेला लाइब्रेरीहरू पुन: लोड हुन सक्दछन र ती सामग्रीहरू प्रशासनिक प्रकार्यहरूद्वारा विश्लेषण गर्न सकिन्छ । प्रत्येक प्रकार्यका लागि, परामितिहरू गणना र प्रकारको बारेमा सूचनाहरू उपब्ध हुन्छ ।

प्रकार्यहरू तत्कालै बोलाउँदछ र तिनीहरूको परिणाम तुरुन्तै प्रतिफल गर्दछ । वास्तविक समय प्रकार्यहरू(तत्कालिन प्रकार्यहरू) पनि सम्भव हुन्छन्; यद्यपी,तिनीहरू तिनीहरूकै जटिलता कारणले गर्दा विस्तारमा व्याख्या गरिएका हुँदैनन् .

## इन्टरफेसको बारेमा सामान्य जानकारीहरू

Add-In प्रकार्यमा अधिकतम परामितिहरूको सङ्ख्या LibreOffice क्याल्क १६मा समाहित गरेको हुन्छ: एउटा फर्कने मान र अधिकतम १५ प्रकार्यहरूको आगत परामितिहरू ।

डेटा प्रकारहरू तल परिभाषित गरिन्छ:

डेटा प्रकारहरू | परिभाषा
--- | ---
CALLTYPE | तल्ला सञ्झ्यालहरू: FAR PASCAL (_far _pascal) अन्य:पूर्वनिर्धारित (सञ्चालन प्रणाली निर्दिष्ट पूर्वनिर्धारित)
USHORT | २ बाइट साइन नगरिएका इन्टिजर
DOUBLE | ८ बाइट प्लेटफर्म-आधारित ढाँचा
Paramtype | int जस्तै प्लेटफर्म-आधारित PTR_DOUBLE =० डबलमा देखाउने PTR_STRING = १ शून्य-समाप्त स्ट्रिङमा देखाउने । PTR_DOUBLE_ARR =२ डबल एरेमा देखाउने PTR_STRING_ARR =३ स्ट्रिङ एरेमा देखाउने PTR_CELL_ARR =४ कक्ष एरेमा देखाउने NONE =५

## Shared LibraryDLL functions

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

For all Shared LibraryDLL 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()

सन्दर्भ परामितिको व्यवस्थापन प्रकार्यहरू बाहेक प्रकार्यको सङ्ख्या फर्काउँदछ । प्रत्येक प्रकार्यसँग एउटा अनुपम सङ्ख्या ० र nCount-१ बीचमा हुन्छ । यो सङ्ख्या GetFunctionData र GetParameterDescription प्रकार्य अक्षरका लागि आवश्यक पर्नेछ ।

वाक्य संरचना

void CALLTYPE GetFunctionCount(USHORT& nCount)

परामिति

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

Add-In प्रकार्य बारेमा सबै महत्व पूर्ण सूचनाहरू निर्धारण गर्दछ ।

वाक्य संरचना

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

परामिति

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 Shared LibraryDLL. 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.

pFuncName र pInternalName परामितिहरू char एरेहरू हुन् । जुन चाहिँ साइज २५६ सहित LibreOffice क्याल्कमा लागू गरिन्छ ।

### GetParameterDescription()

Add-In प्रकार्य र यसका परामितिहरूको वृतान्त वर्णन उपलब्ध गराउँदछ. एउटा विकल्पको रूपमा, यो प्रकार्य प्रकार्य देखाउन र प्रकार्य विजार्ड.मा परामिति वर्णन गर्न प्रयोग गर्न सकिन्छ ।.

वाक्य संरचना

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

परामिति

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 र pDesc char एरेहरू हुन्; LibreOffice क्याल्क मा साइज २५६ सहित लागू हुन्छन् । कृपया प्रकार्य विजार्डमा उपलब्ध खाली स्थान द्रष्टव्य गर्नुहोस् यो सीमित छ र यसमा २५६ क्यारेक्टरहरू पूरा प्रयोग गर्न सकिँदैन ।

## कक्ष क्षेत्रहरू

तल दिएका तालिकाहरू जसमा डेटा बनावटहरू कक्ष क्षेत्रमा पास गरेको अनुसार बाहिरी कार्याक्रम मोड्युलद्वारा उपलब्ध गराउन जरुरी पर्ने बारेका सूचनाहरू समावेश गर्दछ । LibreOffice क्याल्क ले तीन फरक प्रकारका एरेहरूको बीचको भिन्नता निकाल्दछ ।

### डबल एरे

परामितिको रूपमा, सङ्ख्या/डबल प्रकारको मानहरू सहित कक्ष क्षेत्र पास गरिन्छ । LibreOffice क्याल्क मा डबल एरे तल परिभाषित गरिन्छ:

अफसेट | नाम | वर्णन
--- | --- | ---
0 | स्तम्भ१ | कक्ष क्षेत्रको माथि-बायाँ कुनामा स्तम्भ सङ्ख्या । क्रमाङ्कन ० बाट सुरु हुन्छ ।
2 | पङ्क्ति १ | कक्ष क्षेत्रको माथि-बायाँ कुनोमा पङ्क्ति सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
4 | तालिका १ | कक्ष क्षेत्रको माथि-बायाँ कुनामा तालिका सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
6 | स्तम्भ२ | कक्ष क्षेत्रको तल-दायाँ कुनामा स्तम्भ सङ्ख्या । क्रमाङ्कन ० बाट सुरु हुन्छ ।
8 | पङ्क्ति२ | कक्ष क्षेत्रको तल-दायाँ कुनामा पङ्क्ति सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
10 | तालिका २ | कक्ष क्षेत्रको तल-दायाँ कुनामा तालिका सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
12 | गणना | निम्न तत्वहरूको सङ्ख्या । खाली कक्षहरू गणना गरिएको छैन वा पास गरिएको छैन ।
14 | स्तम्भ | तत्वको स्तम्भ सङ्ख्या । क्रमाङ्कन ० बाट सुरु हुन्छ ।
16 | पङ्क्ति | तत्वको पङ्क्ति सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
18 | तालिका | तत्वको तालिका सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
20 | त्रुटि | त्रुटि सङ्ख्या, जहाँ मान ० "no error." को रुपमा परिभाषित गरिएको छ । यदि तत्व सूत्र कक्षबाट आएको छ भने त्रुटि मान सूत्र द्वारा निर्धारण गरिएको छ ।
22 | मान | डबल/उत्प्लवन बिन्दु प्रकारको ८बाइत IEEE चल
30 | ... | पछिल्लो तत्व

### स्ट्रिङ एरे

कक्ष क्षेत्र, जसमा डेटा प्रकार पाठको मानहरू समावेश हुन्छ र स्ट्रिङ एरेको रूपमा पास गर्दछ । LibreOffice क्याल्कमा स्ट्रिङ एरे तल परिभाषित गरिन्छ:

अफसेट | नाम | वर्णन
--- | --- | ---
0 | स्तम्भ१ | कक्ष क्षेत्रको माथि-बायाँ कुनामा स्तम्भ सङ्ख्या । क्रमाङ्कन ० बाट सुरु हुन्छ ।
2 | पङ्क्ति १ | कक्ष क्षेत्रको माथि-बायाँ कुनोमा पङ्क्ति सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
4 | तालिका १ | कक्ष क्षेत्रको माथि-बायाँ कुनामा तालिका सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
6 | स्तम्भ२ | कक्ष क्षेत्रको तल-दायाँ कुनामा स्तम्भ सङ्ख्या । क्रमाङ्कन ० बाट सुरु हुन्छ ।
8 | पङ्क्ति२ | कक्ष क्षेत्रको तल-दायाँ कुनामा पङ्क्ति सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
10 | तालिका २ | कक्ष क्षेत्रको तल-दायाँ कुनामा तालिका सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
12 | गणना | निम्न तत्वहरूको सङ्ख्या । खाली कक्षहरू गणना गरिएको छैन वा पास गरिएको छैन ।
14 | स्तम्भ | तत्वको स्तम्भ सङ्ख्या । क्रमाङ्कन ० बाट सुरु हुन्छ ।
16 | पङ्क्ति | तत्वको पङ्क्ति सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
18 | तालिका | तत्वको तालिका सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
20 | त्रुटि | त्रुटि सङ्ख्या, जहाँ मान ० "no error." को रुपमा परिभाषित गरिएको छ । यदि तत्व सूत्र कक्षबाट आएको छ भने त्रुटि मान सूत्र द्वारा निर्धारण गरिएको छ ।
22 | Len | दिएको स्ट्रिङ लम्बाइ, समावेश बन्द शून्य बाइट । यदि लम्बाइ समावेश शून्य बाइट बराबर दोस्रो शून्य बाइटको बिजोर मान स्ट्रिङमा जोडिएमा त्यसले जोर मान लिन्छ । त्यसकारण Len ((StrLen+2)&~1) को प्रयोग गरेर गणना गरिन्छ ।
24 | स्ट्रिङ्ग | बन्द शून्य बाइट सहित स्ट्रिङ
24+Len | ... | पछिल्लो तत्व

### कक्ष एरे

कक्ष एरेहरू बोलाउने कक्ष एरेहरू समावेश पाठ को साथ साथै सङ्ख्याहरूमा प्रयोग हुन्छ । कक्ष एरे LibreOffice क्याल्कमा तल परिभाषित गरिएको छ:

अफसेट | नाम | वर्णन
--- | --- | ---
0 | स्तम्भ१ | कक्ष क्षेत्रको माथि-बायाँ कुनामा स्तम्भ सङ्ख्या । क्रमाङ्कन ० बाट सुरु हुन्छ ।
2 | पङ्क्ति १ | कक्ष क्षेत्रको माथि-बायाँ कुनोमा पङ्क्ति सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
4 | तालिका १ | कक्ष क्षेत्रको माथि-बायाँ कुनामा तालिका सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
6 | स्तम्भ२ | कक्ष क्षेत्रको तल-दायाँ कुनामा स्तम्भ सङ्ख्या । क्रमाङ्कन ० बाट सुरु हुन्छ ।
8 | पङ्क्ति२ | कक्ष क्षेत्रको तल-दायाँ कुनामा पङ्क्ति सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
10 | तालिका २ | कक्ष क्षेत्रको तल-दायाँ कुनामा तालिका सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
12 | गणना | निम्न तत्वहरूको सङ्ख्या । खाली कक्षहरू गणना गरिएको छैन वा पास गरिएको छैन ।
14 | स्तम्भ | तत्वको स्तम्भ सङ्ख्या । क्रमाङ्कन ० बाट सुरु हुन्छ ।
16 | पङ्क्ति | तत्वको पङ्क्ति सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
18 | तालिका | तत्वको तालिका सङ्ख्या; क्रमाङ्कन ० बाट सुरु हुन्छ ।
20 | त्रुटि | त्रुटि सङ्ख्या, जहाँ मान ० "no error." को रुपमा परिभाषित गरिएको छ । यदि तत्व सूत्र कक्षबाट आएको छ भने त्रुटि मान सूत्र द्वारा निर्धारण गरिएको छ ।
22 | प्रकार | कक्ष सामग्रीको प्रकार, ० == डबल, १ == स्ट्रिङ
24 | मान वा Len | यदि प्रकार == ०: ८ बाइट IEEEडबल/उत्प्लवन बिन्दु प्रकारको चल यदि प्रकार == १: दिएका स्ट्रिङहरूको लम्बाइ, बन्द शून्य बाइट समावेश । यदि बन्द शून्य बाइट समावेश लम्बाइ बराबर दोस्रो शून्य बिजोर मान स्ट्रिङमा थपिएको खण्डमा तिनीहरूले जोर मान ग्रहण गर्दछन् । त्यसकारण,Len ((StrLen+2)&~1) को प्रयोग गरेर गणना गरिन्छ ।
२६ यदि प्रकार==1 | स्ट्रिङ्ग | यदि प्रकार == १: बन्द शून्य बाइट सहितको स्ट्रिङ
३२ वा २६+Len | ... | पछिल्लो तत्व