عندما لا تكون هناك وظيفة Excel للمهمة الحالية، يلجأ مبرمجو Python إلى PyXLL.
PyXLL هي أداة تعمل على سد الفجوة بين Microsoft Excel وPython. يتيح لك دمج كود Python ووظائفه بسلاسة في جداول بيانات Excel. مع PyXLL، يصبح Excel منصة للاستفادة من مكتبات وقدرات Python.
يعمل PyXLL كوظيفة إضافية لـ Excel. يمكنك استخدامه لكتابة وظائف Python ووحدات الماكرو مباشرة في بيئة VBA الخاصة بـ Excel. يعمل PyXLL بعد ذلك كمترجم ويقوم بتشغيل التعليمات البرمجية داخل خلايا Excel، مما يفتح العديد من الاحتمالات. يتضمن بعض هذه المهام أتمتة المهام المعقدة، وتحليل البيانات المتقدمة، وتصور البيانات.
نظرة عامة على PyXLL
يعمل PyXLL عن طريق تشغيل مترجم Python ضمن عملية Excel. وهذا يمنح كود Python الخاص بك، الذي يعمل في PyXLL، إمكانية الوصول المباشر إلى بيانات وكائنات Excel. الأداة مكتوبة بلغة C++ وتستخدم نفس التقنية الأساسية مثل Excel. هذا يعني أن كود Python الذي يتم تشغيله في PyXLL عادة ما يكون أسرع بكثير من كود اكسل VBA.
التثبيت والإعداد
لتثبيت PyXLL، توجه إلى موقع باي اكس إل وقم بتنزيل الوظيفة الإضافية. تأكد من تطابق إصدار Python وإصدار Excel الذي تختاره مع الإصدارين المثبتين في نظامك. PyXLL متاح فقط لإصدار Windows من Excel.
عند اكتمال التنزيل، افتح موجه الأوامر وقم بتشغيل هذا الأمر:
pip install pyxll
أنت بحاجه إلى قم بتثبيت Pip في نظامك لتشغيل الأمر أعلاه. ثم استخدم حزمة PyXLL لتثبيت وظيفة PyXLL الإضافية:
pyxll install
سوف يسألك المثبت عما إذا كنت قد قمت بتنزيل الوظيفة الإضافية أم لا. أدخل نعم ثم قم بتوفير المسار إلى الملف المضغوط الذي يحتوي على الوظيفة الإضافية. ثم اتبع التعليمات التي تظهر على الشاشة لإكمال التثبيت.
الشروع في العمل مع PyXLL
بمجرد تثبيت البرنامج المساعد، قم بتشغيل Excel. قبل أن يتم تشغيله، ستظهر رسالة تطلب منك ذلك ابدأ النسخه التجريبيه أو اشتري الآن. ستنتهي صلاحية الإصدار التجريبي بعد ثلاثين يومًا وستحتاج بعد ذلك إلى شراء ترخيص لمواصلة استخدام PyXLL.
اضغط على ابدأ النسخه التجريبيه زر. سيؤدي هذا إلى تشغيل Excel مع الوظيفة الإضافية المثبتة.
على ال علامة التبويب مثال PyXLL، اضغط على حول باي اكس إل زر. سيُظهر لك هذا المسار الذي قمت بتثبيت الوظيفة الإضافية فيه، بالإضافة إلى المسارات إلى ملفات التكوين والسجل.
يعد المسار الذي يحتوي على ملف التكوين مهمًا حيث ستحتاج إلى تعديل هذا الملف لاحقًا، لذا قم بتدوينه.
تعريض وظائف بايثون إلى Excel
لعرض دالة Python لبرنامج Excel كدالة معرفة من قبل المستخدم (UDF)، استخدم الأمر @xl_func مصمم ديكور. يقوم مصمم الديكور هذا بإرشاد PyXLL لتسجيل الوظيفة في Excel، مما يجعلها متاحة للمستخدمين.
على سبيل المثال، لفضح بايثون فيبوناتشي () دالة إلى Excel باعتبارها UDF، يمكنك استخدام @xl_func مصمم الديكور على النحو التالي:
from pyxll import xl_func
@xl_func
deffibonacci(n):
This is a Python function that calculates the Fibonacci sequence.
if n < 0:
raise ValueError("n must be non-negative")
elif n == 0or n == 1:
return n
else:
return fibonacci(n - 1) + fibonacci(n - 2)
احفظ هذا الرمز بامتداد .py ولاحظ مسار المجلد الذي تحفظ فيه الملف.
الآن، افتح ملف تكوين PyXLL في المحرر وانتقل لأسفل إلى السطر الذي يبدأ بـ "pythonpath". عادةً ما يكون هذا الإعداد عبارة عن قائمة بالمجلدات التي سيبحث عنها PyXLL عن وحدات Python. أضف المسار إلى المجلد الذي يحتوي على الكود المصدري لوظيفة فيبوناتشي.
ثم قم بالتمرير لأسفل إلى "الوحدات النمطية" وأضف الوحدة النمطية الخاصة بك. على سبيل المثال، إذا قمت بحفظ الملف باسم fibonacci.py، أضف اسم "فيبوناتشي" إلى القائمة:
سيؤدي هذا إلى الكشف عن وظائف الوحدة النمطية التي تستخدم ملف @xl_func مصمم الديكور إلى Excel. ثم ارجع إلى Excel، وعلى علامة التبويب مثال PyXLL، اضغط على إعادة تحميل بايكسل زر للتغييرات في ملف التكوين للمزامنة. يمكنك بعد ذلك الاتصال بـ Python فيبوناتشي تعمل كما تفعل مع أي صيغة Excel أخرى.
يمكنك إنشاء أي عدد تريده من الوظائف وعرضها على Excel بنفس الطريقة.
تمرير البيانات بين Excel وPython
يدعم PyXLL استخدام مكتبات Python الخارجية، مثل Pandas. يتيح لك تمرير البيانات من هذه المكتبات إلى Python والعكس. على سبيل المثال، يمكنك استخدم Pandas لإنشاء إطار بيانات عشوائي وتمريره إلى Excel. تأكد من تثبيت Pandas على نظامك، ثم جرب هذا الكود:
from pyxll import xl_func
import pandas as pd
import numpy as np
@xl_func("int rows, int columns: dataframe
", auto_resize=True)
defrandom_dataframe(rows, columns):
data = np.random.rand(rows, columns)
column_names = [chr(ord('A') + x) for x in range(columns)]
return pd.DataFrame(data, columns=column_names)
يجب عليك اتباع نفس العملية لعرض هذه الوحدة ووظائفها لبرنامج Excel. ثم حاول الاتصال بالرقم Random_dataframe تعمل كما تفعل مع صيغة Excel الأخرى:
=random_dataframe(10,5)
يمكنك تغيير عدد الصفوف والأعمدة كما تريد.
يمكنك تمرير إطارات البيانات المحددة مسبقًا إلى Excel بنفس الطريقة. ومن الممكن أيضا أن استيراد بيانات Excel إلى برنامج Python النصي باستخدام Pandas.
حدود PyXLL
- التوافق مع Windows وExcel: تم تصميم PyXLL بشكل أساسي لنظام Windows ويعمل مع Microsoft Excel على Windows. قد يكون به مشكلات وظيفية أو توافق محدودة على الأنظمة الأساسية التي لا تعمل بنظام Windows لأنه مُحسّن لبيئات Windows.
- النشر: يتطلب نشر جداول البيانات التي تدعم PyXLL للمستخدمين النهائيين تثبيت Python مع الحد الأدنى من التبعيات أو وقت تشغيل Python المجمع مع جدول البيانات. وهذا يعني أن المستخدمين الذين يرغبون في استخدام جداول البيانات التي تدعم PyXLL يحتاجون إلى تثبيت Python على أجهزتهم.
- منحنى التعلم: يتطلب استخدام PyXLL بشكل فعال بعض المعرفة ببرمجة Python والإلمام بنموذج كائن Excel. قد يحتاج المستخدمون الذين ليسوا على دراية بنموذج كائن Python أو Excel إلى استثمار الوقت في تعلم هذه المفاهيم قبل الاستفادة الكاملة من إمكانيات PyXLL.
- تكلفة الترخيص: PyXLL هو منتج تجاري، وبناءً على استخدامك ومتطلباتك، قد تكون هناك تكاليف ترخيص مرتبطة باستخدامه. تعتمد تكلفة استخدام PyXLL على عوامل مثل عدد المستخدمين وحجم النشر واتفاقيات الترخيص.
هل يجب أن تستمر في استخدام وظائف Excel؟
ذلك يعتمد على ما تريد تحقيقه. من المنطقي دائمًا استخدام وظائف Excel الأصلية عندما تكون متاحة. ولكن بالنسبة للمهام الأكثر تعقيدًا، والتي لا تستطيع وظائف Excel المدمجة التعامل معها، فإن PyXLL يعد حلاً ممتازًا.
تعد مكتبة Pandas مكملاً مثاليًا لـ PyXLL بقدراتها التحليلية ودعمها القوي لمعالجة البيانات.