TOP

हम LibreOffice Calc के लिए एक Python फ़ंक्शन बनाते हैं

विवरण

LibreOffice Calc उपयोगकर्ताओं को अंतर्निहित StarBasic प्रोग्रामिंग भाषा का उपयोग करके अपने स्वयं के फ़ंक्शन बनाने की अनुमति देता है। यह भाषा काफी हद तक मिलती जुलती है VBA हालाँकि, इसकी कार्यक्षमता सीमित है क्योंकि इसका उपयोग शायद ही कभी किया जाता है।

आधुनिक प्रोग्रामिंग भाषाएँ, जैसे Python, बहुत अधिक संभावनाएँ देती हैं और सभी अवसरों के लिए अतिरिक्त पुस्तकालयों की एक विस्तृत श्रृंखला रखती हैं।

तो, आइए जानें कि आप आज की लोकप्रिय प्रोग्रामिंग भाषा जैसे Python का उपयोग करके अपना स्वयं का फ़ंक्शन कैसे बना सकते हैं।


कार्यालय कार्यक्रमों का पैकेज LibreOffice आपको Python, JavaScript, C++, Java जैसी तृतीय-पक्ष प्रोग्रामिंग भाषाओं में अपने स्वयं के फ़ंक्शन बनाने की अनुमति देता है।

StarBASIC ग्रीटिंग() फ़ंक्शन के लिए कोड

सबसे पहले, आइए याद करें कि आप मैक्रोज़ और फ़ंक्शंस लिखने के लिए मानक LibreOffice Calc टूल का उपयोग करके अपना स्वयं का प्रोग्राम कैसे लिख सकते हैं।

नीचे फ़ंक्शन के लिए कोड है Greeting , जो एक वाक्यांश लौटाता है "Hello " + इनपुट पैरामीटर अंतर्निहित प्रोग्रामिंग भाषा StarBasic का उपयोग करके चयनित सेल में।

अपना स्वयं का फ़ंक्शन जोड़ने के लिए, मेनू खोलें Tools - Macros - Edit Macros... , Module1 चुनें और निम्नलिखित पाठ को मॉड्यूल में कॉपी करें:

Function Greeting(sName As String) As String
    Greeting = "Hello " & sName & "!"
End Function

फिर, Macro Editor को बंद करें, LibreOffice Calc पर वापस लौटें और किसी भी सेल में इस फ़ंक्शन का नाम दर्ज करें और इनपुट पैरामीटर निर्दिष्ट करें।

Python फ़ोल्डर

Python पर एक फ़ंक्शन लिखने से पहले, हमें पहले एक *.py फ़ाइल बनानी होगी (myPyScripts.py) निम्नलिखित फ़ोल्डर में:

%APPDATA%\LibreOffice\4\user\scripts\python

यदि फ़ोल्डर्स लिपियों और अजगर गायब है, आपको उन्हें मैन्युअल रूप से बनाना होगा।

Python ग्रीटिंग() फ़ंक्शन के लिए कोड

नीचे फ़ंक्शन के लिए Python स्क्रिप्ट है Greeting , जो वाक्यांश को निर्धारित करता है "Python say 'Hello' to " + इनपुट पैरामीटर प्रोग्राम में चयनित सेल में LibreOffice Calc।

इस स्क्रिप्ट को जोड़ने के लिए, फ़ाइल खोलें myPyScripts.py के माध्यम से Notepad++ (या Windows Notepad) और निम्नलिखित पाठ को वहां कॉपी करें:

def Greeting(sName):
    return "Python say 'Hello' to " + sName + "!"

फिर, इसे बंद कर दें Notepad++ और LibreOffice Calc पर वापस लौटें।

हम इस फ़ंक्शन को तुरंत नहीं चला सकते क्योंकि LO Calc इंटरफ़ेस का Python फ़ंक्शन से कोई सीधा संबंध नहीं है।

इस समस्या को हल करने के लिए, हमें StarBasic पर एक मध्यवर्ती फ़ंक्शन बनाने की आवश्यकता है:

Function Greeting(sName As String) As String
    pyFile = "myPyScripts.py"
	pyFunc = "Greeting"
	pyParams = Array(sName)
	
	ScriptProvider = CreateUNOService("com.sun.star.script.provider.MasterScriptProviderFactory").createScriptProvider("")
	pyScript = ScriptProvider.getScript("vnd.sun.star.script:" & pyFile & "$" & pyFunc & "?language=Python&location=user")
    Greeting = pyScript.invoke(pyParams, Array(), Array())
End Function

इस मध्यवर्ती फ़ंक्शन को StarBasic मैक्रो एडिटर (मेनू) में जोड़ें Tools - Macros - Edit Macros...).

अब StarBasic फ़ंक्शन को कॉल करें Greeting() , जो बदले में फ़ंक्शन के Python संस्करण को कॉल करता है Greeting() . बस प्रवेश करें Greeting() किसी भी सेल में और पैरामीटर के रूप में किसी भी मान का चयन करें।

एक्सटेंशन का उपयोग करना

आप रेडीमेड सेट का भी उपयोग कर सकते हैं कार्य और उपयोगिता पर लिखा Python एक्सटेंशन इंस्टॉल करके YLC Utilities .

उसके बाद, यह कार्यक्षमता उन सभी फ़ाइलों में उपलब्ध होगी जो LibreOffice Calc में खोली जाएंगी।