تشغيل بايثون في برنامج Calc من خلال نظام الماكرو في LibreOffice

إذا كان برنامج بايثون يعمل من سطر الأوامر ولكنه لا يستطيع قراءة أو تعديل جدول البيانات المفتوح في برنامج Calc، فمن المحتمل أنه يعمل خارج بيئة LibreOffice. يجب تشغيل ماكرو بايثون الخاص ببرنامج Calc داخل عملية LibreOffice، حيث يوفر LibreOffice سياق المستند النشط. احفظ البرنامج كوحدة نمطية في مجلد برامج بايثون الخاص بك، ثم صدّر دالته باستخدام الأمر المناسب g_exportedScripts، وشغّله من مربع حوار الماكرو في برنامج Calc.

هذا هو أبسط مسار لأتمتة صغيرة مرتبطة بملف العمل المفتوح. يشرح دليل برمجة بايثون الحالي في LibreOffice كلاً من وحدات الماكرو داخل العملية وبرامج بايثون النصية المتصلة بشكل منفصل؛ وتستخدم الخطوات أدناه طريقة وحدات الماكرو داخل العملية.

لماذا لا يستطيع برنامج بايثون العادي رؤية جدول البيانات المفتوح؟

يُتيح LibreOffice الوصول إلى المستند الحالي لوحدة ماكرو Python قيد التشغيل عبر المتغير العام XSCRIPTCONTEXT. يُعدّ البرنامج النصي الذي يتم تشغيله باستخدام pythonالأمر المعتاد عمليةً منفصلة، ​​لذا فإن المتغير العام غير متاح تلقائيًا. مع ذلك، يُمكنه التواصل مع LibreOffice، لكن ذلك يتطلب إنشاء اتصال UNO بعملية Office قيد التشغيل بالفعل. لإنشاء أول وحدة ماكرو، شغّل الدالة داخل LibreOffice بدلاً من ذلك.

الماكرو في بايثون هو دالة ضمن .pyوحدة نمطية. يحدد ترتيب الوحدة النمطية g_exportedScriptsفي LibreOffice الدوال التي يجب عرضها في قائمة الماكرو. هذه التفاصيل موثقة في مرجع برمجة بايثون الخاص بـ LibreOffice .

كيف يمكن إضافة ماكرو بايثون إلى برنامج Calc؟

1. ابحث عن مجلد نصوص بايثون الخاص بالمستخدم

استخدم موقع "وحدات الماكرو الخاصة بي" إذا كنت ترغب في تشغيل برنامج نصي من أي مستند LibreOffice مفتوح لحساب المستخدم الخاص بك. يُنشئ LibreOffice هذا المجلد %APPDATA%\LibreOffice\4\user\Scripts\pythonعلى نظامي التشغيل Windows و $HOME/.config/libreoffice/4/user/Scripts/pythonLinux وmacOS. إذا Scripts/pythonلم تكن المجلدات موجودة، فأنشئها. يشرح مرجع مواقع البرامج النصية أيضًا حاويات الماكرو الأخرى: وحدات ماكرو التطبيق ووحدات الماكرو المضمنة في المستند.

ملف بايثون باسم hello_calc.py موجود في مجلد Scripts/python الخاص بمستخدم LibreOffice
ضع وحدة الماكرو في مجلد Scripts/python الخاص بالمستخدم حتى يتمكن LibreOffice من إدراجها ضمن وحدات الماكرو الخاصة بي.

تُخزَّن وحدات الماكرو الخاصة بالمستندات داخل ملف مُحدد، ولا يُمكن الوصول إليها إلا أثناء فتح ذلك المستند. بالنسبة لأداة شخصية قابلة لإعادة الاستخدام، يُعدّ استخدام "وحدات الماكرو الخاصة بي" أسهل في الصيانة. تجنّب تعديل مجلد وحدات الماكرو الخاص بتطبيق LibreOffice، فقد يتطلب ذلك صلاحيات المسؤول.

2. أنشئ وصدّر دالة اختبار صغيرة

افتح محرر نصوص عادي، أنشئ ملفًا hello_calc.pyفي المجلد أعلاه، وأضف ما يلي:

def hello_calc(*args):
    doc = XSCRIPTCONTEXT.getDocument()
    sheet = doc.Sheets[0]
    sheet.getCellRangeByName("A1").setString("Hello from Python")

g_exportedScripts = (hello_calc,)

تستقبل الدالة المستند المتصل حاليًا باستدعاء الماكرو، وتختار ورقته الأولى، وتكتب سلسلة نصية تجريبية غير ضارة في الخلية A1. السطر الأخير مهم: فبدون المجموعة المُصدَّرة، قد لا تظهر الدالة كماكرو قابل للتنفيذ. احفظ الملف كنص عادي بامتداد .org .py، وليس كمستند نص منسق أو ملف ينتهي بـ .org .py.txt.

كود ماكرو بايثون باستخدام XSCRIPTCONTEXT وإدراج hello_calc في g_exportedScripts
تستخدم الدالة المصدرة XSCRIPTCONTEXT للوصول إلى المستند المفتوح وكتابة قيمة اختبارية في الخلية A1.

يُزوّد ​​LibreOffice XSCRIPTCONTEXTوحدة الماكرو بالمتغير. ولا يُمرّر هذا المتغير تلقائيًا إلى الوحدات التي يستوردها الكود الخاص بك، لذا اجعل الاختبار الأول مكتفيًا بذاته. إذا قمت لاحقًا بتقسيم الدوال القابلة لإعادة الاستخدام إلى وحدات أخرى، فاتبع إرشادات استيراد وحدات Python الخاصة بـ LibreOffice .

3. افتح ملف Calc وقم بتشغيل الدالة المصدرة

  1. افتح جدول بيانات تجريبي في برنامج Calc. استخدم نسخة أو مصنف عمل فارغ أثناء التطوير.
  2. اختر الأدوات > وحدات الماكرو > تشغيل الماكرو .
  3. في قائمة المكتبة، قم بتوسيع "وحدات الماكرو الخاصة بي" ، واختر وحدة بايثون، ثم حدد hello_calcمن أسماء وحدات الماكرو.
  4. انقر فوق تشغيل .

يمكن تشغيل الوظيفة نفسها من خلال إضافة APSO، التي توصي بها LibreOffice لكتابة البرامج النصية بلغة Python داخل العملية، كما توفر واجهة سطر أوامر Python. لا تحتاج إلى APSO لتنفيذ عملية تشغيل الماكرو الأساسية الموضحة هنا.

محدد وحدات الماكرو في LibreOffice مع تمييز hello_calc ضمن وحدات الماكرو الخاصة بي وزر التشغيل ظاهر
اختر دالة hello_calc المصدرة ضمن وحدات الماكرو الخاصة بي، ثم قم بتشغيلها من Calc.
يعرض برنامج LibreOffice Calc رسالة "مرحباً من بايثون" في الخلية المحددة A1
تؤكد القيمة المرئية في الخلية A1 أن ماكرو الاختبار قد وصل إلى مستند Calc وقام بتغيير إحدى الخلايا.

ماذا لو كان الماكرو مفقودًا أو يبدو أنه لا يفعل شيئًا؟

قم بإجراء هذه الفحوصات بالترتيب بدلاً من تغيير إعدادات الأمان العامة:

  • الوحدة غير مدرجة: تأكد من وجود الملف في Scripts/pythonمسار المستخدم الصحيح، وأن له .pyلاحقة، وأن اسمه مكتوب بشكل صحيح g_exportedScripts. أعد فتح نافذة الماكرو؛ إذا لم يظهر الملف المضاف حديثًا في LibreOffice، فأغلق البرنامج وأعد تشغيله، ثم تحقق مرة أخرى.
  • اسم الماكرو مفقود: تأكد من أن المجموعة المصدرة تتضمن كائن الدالة، على سبيل المثال (hello_calc,). الفاصلة تجعل هذه المجموعة مكونة من عنصر واحد في بايثون.
  • لا يظهر أي شيء في نافذة الأوامر: لا تتوفر مخرجات الأمر print()عند تشغيل وحدات ماكرو بايثون من مربع حوار الماكرو القياسي. يكتب الاختبار أعلاه في الخلية A1، لذا فإن النتيجة مرئية في ورقة العمل. ولأغراض التصحيح التفاعلي، تعرض واجهة سطر الأوامر الخاصة بـ APSO المخرجات.
  • فشل الاستيراد: تثبيت حزمة لبيئة بايثون الخاصة بنظامك لا يضمن إمكانية استيرادها من قِبل بيئة تشغيل بايثون في LibreOffice. يجب أن تكون الحزمة متوفرة في مسار بايثون الخاص ببيئة التشغيل؛ ويشرح دليل الاستيراد الرسمي مسارات الوحدات النمطية للمستخدم والوحدات النمطية المشتركة. ابدأ باختبار الماكرو بدون عمليات استيراد اختيارية.
  • يظهر تحذير أمني: لا تُشغّل إلا البرامج النصية التي كتبتها أو راجعتها وتثق بها. وُجدت ميزة أمان الماكرو للحد من التعليمات البرمجية غير الآمنة؛ لذا لا تُخفّض مستوى الأمان العام لمجرد تشغيل ماكرو في مستند غير مألوف. راجع خيارات أمان الماكرو في LibreOffice إذا كنت بحاجة إلى فهم التحذير.

اختر أسلوب العملية الخارجية فقط عندما يتطلب تشغيل الأتمتة بدء التشغيل من طرفية أو مُجدوِل أو تطبيق آخر. يتطلب LibreOffice بدء عملية المكتب باستخدام قناة أو مقبس والاتصال عبر جسر UNO الخاص به؛ فالنص البرمجي المستقل العادي لا يُعادل ماكرو Calc المُدمج في العملية.

كيف يمكنك التحقق من أن الماكرو قد نجح؟

بعد النقر على "تشغيل"، انظر إلى الخلية A1 في الورقة الأولى. يجب أن تحتوي على "Hello from Python" ، ويجب أن يُظهر شريط الصيغة النص نفسه عند تحديد A1. إذا لم تتغير الخلية، فتأكد من أن المصنف المطلوب كان نشطًا وأن الماكرو مُحدد من "وحدات الماكرو الخاصة بي". بمجرد نجاح هذا الاختبار البسيط، استبدل نص الاختبار بالحساب الفعلي واختبره على نسخة من المصنف قبل استخدامه على بيانات مهمة.

اترك تعليقاً

حماية نص الكاتب المحدد بكلمة مرور خاصة بالقسم

حماية نص الكاتب المحدد بكلمة مرور خاصة بالقسم

قم بتأمين مقطع معين ضد التعديلات الروتينية مع الحفاظ على إمكانية استخدام بقية مستند Writer، وتعرف على متى يكون تشفير الملفات هو الخيار الأفضل.

اجعل نص جدول البيانات قابلاً للقراءة في الوضع الداكن في LibreOffice Calc

اجعل نص جدول البيانات قابلاً للقراءة في الوضع الداكن في LibreOffice Calc

قم بإصلاح نص جدول البيانات الذي يصعب رؤيته عن طريق التحقق من السمة ولون خط الخلية والتعبئة والتنسيق الشرطي في برنامج Calc.

هل يعرض برنامج LibreOffice Calc الصيغ كنص؟ استعادة النتائج

هل يعرض برنامج LibreOffice Calc الصيغ كنص؟ استعادة النتائج

تعرّف على سبب عرض برنامج Calc لنصوص الصيغ بدلاً من القيم المحسوبة، وقم بإصلاح وضع العرض، والخلايا المنسقة نصياً، وعلامات الترقيم، أو النتائج القديمة.

دمج حروف برنامج Writer مع شعار وحقول جدول البيانات

دمج حروف برنامج Writer مع شعار وحقول جدول البيانات

قم بإنشاء دمج بريد قابل لإعادة الاستخدام في برنامج Writer باستخدام بيانات المستلمين في برنامج Calc وصورة مضمنة مشتركة، ثم قم بمعاينة الرسائل الشخصية وحفظها.

تقييد التشخيصات الاختيارية وتحديث البيانات في LibreOffice

تقييد التشخيصات الاختيارية وتحديث البيانات في LibreOffice

قم بإيقاف تشغيل إحصائيات التحديث الاختيارية لـ LibreOffice ومطالبات تقارير الأعطال، ثم تحقق مما تغطيه الإعدادات وكيفية التحقق منها.

استخدم التعبيرات النمطية (Regex) في برنامج LibreOffice Writer لتحرير النصوص دفعة واحدة.

استخدم التعبيرات النمطية (Regex) في برنامج LibreOffice Writer لتحرير النصوص دفعة واحدة.

تنظيف المسافات، والعثور على النصوص المنظمة، وإعادة ترتيب الأسماء باستخدام أنماط التعبير النمطي في برنامج Writer التي يمكنك معاينتها قبل الاستبدال.

اضبط كتابة الفقرات العربية والعبرية من اليمين إلى اليسار في برنامج Writer

اضبط كتابة الفقرات العربية والعبرية من اليمين إلى اليسار في برنامج Writer

قم بتمكين عناصر التحكم ثنائية الاتجاه في برنامج Writer، واضبط تدفق الفقرات من اليمين إلى اليسار، وتحقق من النصوص العربية أو العبرية المختلطة دون التأثير على الكلمات والأرقام الإنجليزية.

استعادة خطي Calibri وArial في LibreOffice بدون تخمين

استعادة خطي Calibri وArial في LibreOffice بدون تخمين

قم بتثبيت خطوط لينكس المتوافقة مع النظام المتري أو قم بتعيين بدائل LibreOffice، مع مراعاة اختلافات ترخيص وتخطيط خطوط Microsoft.

إنشاء ملفات PDF قابلة للتعبئة من النماذج في LibreOffice Writer

إنشاء ملفات PDF قابلة للتعبئة من النماذج في LibreOffice Writer

أضف حقول نصية قابلة للاستخدام، ومربعات اختيار، وقوائم منسدلة في برنامج Writer، ثم قم بتصدير ملف PDF يمكن للمستلمين إكماله وحفظه.

إنشاء ملفات PDF باستخدام LibreOffice مع الاحتفاظ بالخطوط المستخدمة

إنشاء ملفات PDF باستخدام LibreOffice مع الاحتفاظ بالخطوط المستخدمة

قم بإصلاح الخطوط المفقودة أو المستبدلة في ملفات PDF الخاصة ببرنامج LibreOffice Writer، واختر ملف تعريف التصدير الصحيح، وتحقق من الخطوط المضمنة قبل المشاركة.