LibreOffice Calc يسمح للمستخدمين بإنشاء وظائفهم الخاصة باستخدام لغة البرمجة StarBasic المضمنة. هذه اللغة تشبه إلى حد كبير VBA ومع ذلك، فإن وظائفه محدودة لأنه نادرًا ما يتم استخدامه.
توفر لغات البرمجة الحديثة، مثل Python، إمكانيات أكثر بكثير وتحتوي على نطاق أوسع من المكتبات الإضافية لجميع المناسبات.
لذلك، دعونا نتعلم كيف يمكنك إنشاء وظيفتك الخاصة باستخدام لغة برمجة شائعة اليوم مثل Python.
أولاً، دعنا نتذكر كيف يمكنك كتابة برنامجك الخاص باستخدام أدوات LibreOffice Calc القياسية لكتابة وحدات الماكرو والوظائف.
أدناه هو رمز الوظيفة
لإضافة وظيفتك الخاصة، افتح القائمة
Function Greeting(sName As String) As String Greeting = "Hello " & sName & "!" End Function
بعد ذلك، قم بإغلاق Macro Editor، والعودة إلى LibreOffice Calc وأدخل اسم هذه الوظيفة في أي خلية وحدد معلمة الإدخال.
قبل كتابة دالة في Python، نحتاج أولاً إلى إنشاء ملف *.py (
%APPDATA%\LibreOffice\4\user\scripts\python
إذا المجلدات مخطوطات و بايثون مفقودة، تحتاج إلى إنشائها يدويًا.
يوجد أدناه البرنامج النصي Python للوظيفة
لإضافة هذا البرنامج النصي، افتح الملف
def Greeting(sName):
return "Python say 'Hello' to " + sName + "!"
ثم أغلقه
لا يمكننا تشغيل هذه الوظيفة على الفور لأن واجهة 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 (menu
الآن قم باستدعاء الدالة StarBasic
يمكنك أيضًا استخدام مجموعة جاهزة وظائف و جدوى مكتوب على
بعد ذلك، ستكون هذه الوظيفة متاحة في كافة الملفات التي سيتم فتحها في LibreOffice Calc.