Contents
Index 🔎︎

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

Add-Insद्वारा क्याल्क फैलाउने विधि यो तल दिएको अद्यावधिकमा वर्णन गरिन्छ । अवस्थित रहेको Add-Ins सहित अनुकूलता निश्चित गर्नलाई यि इन्टरफेसहरू पहिले देखिनै वैध र समर्थित हुन्छन् । तर प्रोग्रामिङ नयाँ Add-Ins का लागि तपाईँंले नयाँ API प्रकार्यहरू प्रयोग गर्नै पर्दछ ।

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

LibreOffice searches the Add-in folder defined in the configuration for a suitable shared library DLL. To be recognized by LibreOffice, the shared library DLL 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 लाइब्रेरीले पृथक प्रकार्यहरू उपलब्ध गराउँदछन् । केही प्रकार्यहरू प्रशासनिक उद्देश्यहरूका लागि प्रयोग हुन्छन् । तपाईँं लगभग कुनैनाम तपाईँं आफ्नै प्रकार्यका लागि रोज्न सक्नुहुन्छ । यद्यपि, तिनीहरूले परामिति पास गर्दा पनि निश्चित नियम ख्याल गरेर पालना गर्न जरुरी छ । फरक प्लेटफर्महरूका लागि निश्चित नाम राख्ने र बोलाउने प्रथाहरू फरक हुन्छन।

### सेयर्ड लाइब्रेरी AddIn 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 =५

## सेयर्ड लाइब्रेरी DLL प्रकार्यहरू

तल दिएकोमा तपाईँं ती प्रकार्यहरूको वर्णन भेटाउन सक्ननुहुनेछ, जुन सेयर्ड लाइब्रेरी बाहिरी DLLमा बोलाइन्छ ।

सबैका लागि सेयर्ड लाइब्रेरी DLL प्रकार्यहरूमा,दिएका लागू हुन्छन्:

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

निर्गत: परिणाम मान

आगत:प्रकारहरू (double&, char*, double*, char**, Cell area) को कुनै सङ्ख्या , जहाँ कक्ष क्षेत्रडबल एरे प्रकारहरूको एउटा एरे , स्ट्रिङ एरे वा कक्ष एरे हो ।

### GetFunctionCount()

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

वाक्य संरचना

CALLTYPE GetFunctionCount(USHORT& nCount) शून्य गर्नुहोस् ।

परामिति

USHORT &nCount:

निर्गत: चलमा सन्दर्भ,जुन Add-In प्रकार्यको सङ्ख्या समावेश गराउनलाई मानिएको हन्छ । उदाहरणका लागि: यदि Add-In ले LibreOffice क्याल्क ५ प्रकार्यहरू उपलब्ध गराउँदछ त्यसपछि nCount=५ ।

### GetFunctionData()

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

वाक्य संरचना

CALLTYPE GetFunctionData(USHORT& nNo, char* pFuncName, USHORT& nParamCount, Paramtype* peType, char* pInternalName) शून्य गराउनु होस्

परामिति

USHORT& nNo:

आगत: प्रकार्य सङ्ख्या ० र nCount-1 बीचमा समावेश गर्दछ ।

char* pFuncName:

निर्गत: कार्यक्रम कर्ताद्वारा देखाएको नाम प्रकार्य,यस रूपमा सेयर्ड लाइब्रेरीDLLनाम राखिएको हुन्छ । यो नाम प्रकार्य विजार्डमा निर्धारण गरेको नाम होइन ।

USHORT& nParamCount:

निर्गत: AddIn प्रकार्यमा परामितिहरूको सङ्ख्या यो सङ्ख्या ० भन्दा बढी हुन जरुरी छ , किन भने तिनीहरू प्रायजसो परिणाम मान हुन्छन् ; अधिकतम मान १६ हो ।

Paramtype* peType:

निर्गत:Paramtype प्रकारको निश्चित १६ वटा चलहरूको एरेमा देखाउँदछ । पहिलो nParamCount प्रविष्टिहरू परामितिको उपयुक्त प्रकार सहित भरिएको हुन्छ ।

char* pInternalName:

निर्गत: प्रयोग कर्ताद्वारा प्रकार्य नाम देखाउँदछ, यस रूपमा Function Wizard मा देखा पर्दछ । umlauts समावेश गराउन पनि सक्दछ ।

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

### GetParameterDescription()

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

वाक्य संरचना

CALLTYPE GetParameterDescription(USHORT& nNo, USHORT& nParam, char* pName, char* pDesc) शून्य गराउँदछ ।

परामिति

USHORT& nNo:

Input: पुस्तकमा प्रकार्यको सङ्ख्या ; ० र nCount-1को बीचमा ।

USHORT& nParam:

आगत: तोक्दछ, जुन परामितिका लागि वर्णन उपलब्ध गरिन्छ ; परामितिहरू १ बाट सुरु हुन्छन । यदि nParam ० भएको खण्डमा , वर्णन यो आफै pDescमा उपलब्ध गराउन लाई मानिएको हुन्छ; यो केसमा, pName ले कुनै पनि अर्थ दिदैन ।

char* pName:

निर्गत: परामिति नाम वा प्रकार लिन्छ, उदाहरणका लागि, शब्द "Number" वा "String" वा "Date", र यस्तै अरू पनि । char[256] को रूपमा LibreOffice क्याल्क मा लागू गर्नुहोस् ।

char* pDesc:

निर्गत:परामितिको वर्णन लिन्छ , उदाहरणका लागि, "Value, at which the universe is to be calculated." char[256] को रूपमा LibreOffice क्याल्कमा लागू गर्नुहोस् ।

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

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

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

### डबल एरे

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

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

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

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

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

### कक्ष एरे

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

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