نحوه ادغام یکپارچه پایتون در اکسل با استفاده از PyXLL

261
0
ادغام یکپارچه پایتون در اکسل

PyXLL ابزاری است که فاصله بین Microsoft Excel و Python را پر می کند. این به شما امکان می دهد کد و عملکرد پایتون را به طور یکپارچه در صفحات گسترده اکسل ادغام کنید. با PyXLL، اکسل به پلتفرمی برای استفاده از کتابخانه ها و قابلیت های پایتون تبدیل می شود. ادغام یکپارچه پایتون در اکسل را در ادامه توضیح داده ایم.

PyXLL به عنوان یک افزونه اکسل عمل می کند. می توانید از آن برای نوشتن توابع و ماکروهای پایتون به طور مستقیم در محیط VBA اکسل استفاده کنید. سپس PyXLL به عنوان مفسر عمل می‌کند و کد را در سلول‌های اکسل اجرا می‌کند و احتمالات زیادی را باز می‌کند. برخی از این موارد شامل خودکار کردن وظایف پیچیده، تجزیه و تحلیل پیشرفته داده ها و تجسم داده ها است.

مروری بر PyXLL

PyXLL با اجرای یک مفسر پایتون در فرآیند اکسل کار می کند. این به کد پایتون شما که در PyXLL اجرا می شود، دسترسی مستقیم به داده ها و اشیاء اکسل را می دهد. این ابزار به زبان C++ نوشته شده است و از همان فناوری زیربنایی اکسل استفاده می کند. این بدان معنی است که کد پایتون در حال اجرا در PyXLL معمولاً بسیار سریعتر از کد Excel VBA است.

نصب و راه اندازی

برای نصب PyXLL، به وب سایت PyXLL بروید و افزونه را دانلود کنید. اطمینان حاصل کنید که نسخه پایتون و نسخه اکسل انتخابی شما با نسخه های نصب شده در سیستم شما مطابقت دارند. PyXLL فقط برای نسخه ویندوز اکسل در دسترس است.

وقتی دانلود کامل شد، یک command prompt را باز کنید و این دستور را اجرا کنید:

pip install pyxll

برای اجرای دستور بالا باید Pip را در سیستم خود نصب کنید. سپس از بسته PyXLL برای نصب افزونه PyXLL استفاده کنید:

pyxll install

نصب کننده از شما می پرسد که آیا افزونه را دانلود کرده اید یا خیر. بله را وارد کنید و سپس مسیر فایل فشرده حاوی افزونه را ارائه دهید. سپس دستورالعمل های روی صفحه را برای تکمیل نصب دنبال کنید.

شروع با PyXLL

پس از نصب افزونه، اکسل را راه اندازی کنید. قبل از راه‌اندازی، پیامی ظاهر می‌شود که از شما می‌خواهد آزمایشی را شروع کنید یا اکنون بخرید. نسخه آزمایشی پس از 30 روز منقضی می‌شود و برای ادامه استفاده از PyXLL باید مجوز خریداری کنید.

روی دکمه Start Trial کلیک کنید. با این کار اکسل با افزونه نصب شده راه اندازی می شود.

در Tab Example PyXLL، روی دکمه About PyXLL کلیک کنید. این به شما مسیری را که افزونه را در آن نصب کرده اید، به همراه مسیرهای پیکربندی و فایل های گزارش نشان می دهد.

مسیر حاوی فایل پیکربندی مهم است زیرا بعداً باید آن فایل را ویرایش کنید، بنابراین آن را یادداشت کنید.

افشای توابع پایتون در اکسل

برای نمایش یک تابع پایتون در اکسل به عنوان یک تابع تعریف شده توسط کاربر (UDF)، از decorator@xl_func استفاده کنید. این دکوراتور به PyXLL دستور می دهد تا عملکرد را با Excel ثبت کند و آن را در دسترس کاربران قرار دهد.

به عنوان مثال، برای نمایش تابع فیبوناچی() پایتون در اکسل به عنوان UDF، می‌توانید از decorator@xl_func به صورت زیر استفاده کنید:

from pyxll import xl_func

@xl_func
def fibonacci(n):
  “””
  This is a Python function that calculates the Fibonacci sequence.
  “””
  if n < 0:
    raise ValueError(“n must be non-negative”)
  elif n == 0 or n == 1:
    return n
  else:
    return fibonacci(n – 1) + fibonacci(n – 2)

این کد را با پسوند py ذخیره کنید و مسیر پوشه ای که فایل را در آن ذخیره می کنید را یادداشت کنید.

اکنون، فایل پیکربندی PyXLL را در یک ویرایشگر باز کنید و به خطی که شروع به «pythonpath» می‌کند، بروید. این تنظیم معمولاً فهرستی از پوشه‌هایی است که PyXLL برای ماژول‌های پایتون جستجو می‌کند. مسیر را به پوشه ای که حاوی کد منبع تابع فیبوناچی است اضافه کنید.

سپس به پایین به “ماژول ها” بروید و ماژول خود را اضافه کنید. به عنوان مثال، اگر فایل خود را به عنوان fibonacci.py ذخیره کرده اید، نام “fibonacci” را به لیست اضافه کنید:

با این کار، توابع ماژول که از دکوراتور @xl_func استفاده می‌کنند در اکسل نمایش داده می‌شوند. سپس به اکسل برگردید و در Tab Example PyXLL، روی دکمه Reload PyXLL کلیک کنید تا تغییرات در فایل پیکربندی برای همگام سازی شود. سپس می توانید تابع فیبوناچی پایتون را مانند فرمول های دیگر اکسل فراخوانی کنید.

شما می توانید هر تعداد توابع که نیاز دارید ایجاد کنید و آنها را به همان روش در معرض اکسل قرار دهید.

انتقال داده بین اکسل و پایتون

PyXLL از استفاده از کتابخانه های خارجی پایتون مانند پانداها پشتیبانی می کند. به شما امکان می دهد داده ها را از این کتابخانه ها به پایتون و بالعکس منتقل کنید. به عنوان مثال، می توانید از پانداها برای ایجاد یک دیتافریم تصادفی و ارسال آن به اکسل استفاده کنید. مطمئن شوید که Pandas در سیستم شما نصب شده است، سپس این کد را امتحان کنید:

from pyxll import xl_func
import pandas as pd
import numpy as np

@xl_func(“int rows, int columns: dataframe<index=True>”, auto_resize=True)
def random_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)

شما باید همین روند را دنبال کنید تا این ماژول و عملکردهای آن را در اکسل قرار دهید. سپس مانند فرمول های دیگر اکسل، تابع random_dataframe را فراخوانی کنید:

=random_dataframe(10,5)

می توانید تعداد سطرها و ستون ها را به دلخواه تغییر دهید.

به همین ترتیب می توانید دیتافریم های از پیش تعریف شده خود را به اکسل ارسال کنید. همچنین امکان وارد کردن داده های اکسل به اسکریپت پایتون با استفاده از پانداها وجود دارد.

محدودیت های PyXLL

سازگاری با ویندوز و اکسل: PyXLL در درجه اول برای ویندوز طراحی شده است و با مایکروسافت اکسل در ویندوز کار می کند. ممکن است مشکلات عملکرد یا سازگاری محدودی در پلتفرم‌های غیر ویندوز داشته باشد زیرا برای محیط‌های ویندوز بهینه شده است.

استقرار: استقرار صفحات گسترده مبتنی بر PyXLL برای کاربران نهایی مستلزم آن است که پایتون با حداقل وابستگی ها یا زمان اجرا پایتون همراه با صفحه گسترده نصب شده باشد. این بدان معناست که کاربرانی که می‌خواهند از صفحات گسترده مبتنی بر PyXLL استفاده کنند، باید پایتون را روی دستگاه‌های خود نصب کنند.

منحنی یادگیری: استفاده از PyXLL به طور موثر نیازمند دانش برنامه نویسی پایتون و آشنایی با مدل شی اکسل است. کاربرانی که با مدل شیء پایتون یا اکسل آشنایی ندارند، ممکن است قبل از استفاده کامل از قابلیت های PyXLL، نیاز به صرف زمان برای یادگیری این مفاهیم داشته باشند.

هزینه مجوز: PyXLL یک محصول تجاری است و بسته به استفاده و نیازهای شما، ممکن است هزینه های صدور مجوز مربوط به استفاده از آن باشد. هزینه استفاده از PyXLL به عواملی مانند تعداد کاربران، مقیاس استقرار و قراردادهای مجوز بستگی دارد.

آیا هنوز باید از توابع اکسل استفاده کنید؟

بستگی به این دارد که می خواهید چه کاری انجام دهید. همیشه استفاده از توابع بومی اکسل زمانی که در دسترس هستند منطقی است. اما، برای کارهای پیچیده تر، که توابع داخلی اکسل قادر به انجام آن نیستند، PyXLL یک راه حل عالی است.

کتابخانه Pandas با قابلیت‌های تحلیلی و پشتیبانی قوی از پردازش داده‌ها، مکمل کاملی برای PyXLL است.

امتیاز این مطلب

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

گوگل فارکس آموزش تخصصی آمارکتس