TOP

نكتب ماكرو على Python لـ LibreOffice Calc

وصف

LibreOffice Calc يسمح للمستخدمين بإنشاء وحدات الماكرو الخاصة بهم باستخدام لغة البرمجة المضمنة StarBasic. هذه اللغة تشبه إلى حد كبير VBA ومع ذلك، فإن وظائفه محدودة لأنه نادرًا ما يتم استخدامه.

توفر لغات البرمجة الحديثة، مثل Python، إمكانيات أكثر بكثير وتحتوي على نطاق أوسع من المكتبات الإضافية لجميع المناسبات.

لذلك، دعونا نكتشف كيف يمكنك إنشاء وحدات الماكرو الخاصة بك باستخدام لغة البرمجة الشائعة اليوم مثل Python.


تتيح لك حزمة البرامج المكتبية LibreOffice إنشاء وحدات الماكرو الخاصة بك بلغات برمجة الطرف الثالث مثل Python وJavaScript وC++ وJava.

StarBASIC رمز HelloWorld

أولاً، دعونا نتذكر كيف يمكنك كتابة برنامجك الخاص باستخدام الأدوات القياسية LibreOffice Calk لكتابة وحدات الماكرو.

يوجد أدناه رمز الماكرو HelloWorld ، الذي ينص على العبارة "Hello World!" في الخلية "B7" باستخدام لغة البرمجة المضمنة StarBasic.

لإضافة ماكرو جديد، افتح القائمة Tools - Macros - Edit Macros... وحدد Module1 وانسخ النص التالي إلى الوحدة:

Sub HelloWorld
    GlobalScope.BasicLibraries.loadLibrary("ScriptForge")
    
    'REM "doc" it's a current LO Calc workbook (active worksheet)
    doc = CreateScriptService("Calc")
    doc.SetValue("B7", "Hello World!")
End Sub

ثم أغلق Macro Editor، ثم عد إلى LibreOffice Calc وقم بتشغيل الماكرو الجديد الخاص بنا عبر القائمة Tools - Macros - Run Macro...

Python المجلد

قبل كتابة ماكرو على Python، نحتاج أولاً إلى إنشاء ملف *.py (myPyScripts.py) في المجلد التالي:

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

إذا المجلدات مخطوطات و بيثون مفقودة، تحتاج إلى إنشائها يدويًا.

Python كود HelloPython

يوجد أدناه البرنامج النصي Python للماكرو HelloPython ، الذي ينص على العبارة "Hello Python!" في الخلية "B8" في البرنامج LibreOffice Cac.

لإضافة ماكرو جديد، افتح الملف myPyScripts.py عن طريق Notepad++ (أو Windows Notepad) وانسخ النص التالي هناك:

from scriptforge import CreateScriptService

def HelloPython():
    doc = CreateScriptService("Calc")
    doc.SetValue("B8", "Hello Python!")
    return None

ثم أغلقه Notepad++ والعودة إلى LibreOffice Calc. لخلط هذا البرنامج النصي، افتح القائمة Tools - Macros - Organise Macros - Python... ، يختار "My Macros" ، افتح المجلد "myPyScripts" والاختيار HelloPython اضغط على الزر Run .

لاحظ أن وحدات الماكرو المحددة في StarBasic على Python تستخدم المكتبة المضمنة ScriptForge . تعمل هذه المكتبة على تبسيط كتابة وحدات الماكرو للمستخدمين النهائيين من خلال إخفاء كافة وظائف النظام "تحت الغطاء".

باستخدام التمديد

يمكنك أيضًا استخدام مجموعة جاهزة وظائف و جدوى مكتوب على Python عن طريق تثبيت الامتداد YLC Utilities .

بعد ذلك، ستكون هذه الوظيفة متاحة في كافة الملفات التي سيتم فتحها في LibreOffice Calc.