כאשר אין פונקציית Excel עבור העבודה בהישג יד, מתכנתי Python פונים אל PyXLL.

PyXLL הוא כלי שמגשר על הפער בין Microsoft Excel לפייתון. זה מאפשר לך לשלב בצורה חלקה את הקוד והפונקציונליות של Python בגיליונות אלקטרוניים של Excel. עם PyXLL, Excel הופך לפלטפורמה למינוף הספריות והיכולות של Python.

PyXLL משמש כתוספת של Excel. אתה יכול להשתמש בו כדי לכתוב פונקציות ופקודות מאקרו של Python ישירות בסביבת VBA של Excel. לאחר מכן PyXLL פועל כמתורגמן ומריץ את הקוד בתוך תאי Excel, ופותח אפשרויות רבות. חלקם כוללים אוטומציה של משימות מורכבות, ניתוח נתונים מתקדם והדמיית נתונים.

סקירה כללית של PyXLL

PyXLL פועל על ידי הפעלת מתורגמן Python בתהליך האקסל. זה נותן לקוד Python שלך, הפועל ב- PyXLL, גישה ישירה לנתונים ואובייקטים של Excel. הכלי כתוב ב-C++ והוא משתמש באותה טכנולוגיה בסיסית כמו Excel. משמעות הדבר היא שקוד Python הפועל ב- PyXLL הוא בדרך כלל הרבה יותר מהיר מאשר קוד VBA של אקסל.

התקנה והגדרה

כדי להתקין PyXLL, עבור אל אתר PyXLL ולהוריד את התוספת. ודא שגרסת Python וגרסת Excel שתבחר תואמות לאלה המותקנות במערכת שלך. PyXLL זמין רק עבור גרסת Windows של Excel.

instagram viewer

כשההורדה תושלם, פתח שורת פקודה והפעל את הפקודה הבאה:

pip install pyxll

אתה צריך התקן את Pip במערכת שלך כדי שהפקודה לעיל תפעל. לאחר מכן השתמש בחבילת PyXLL כדי להתקין את התוספת PyXLL:

pyxll install

המתקין ישאל אם הורדת את התוסף. הזן כן ולאחר מכן ספק את הנתיב לקובץ ה-zip המכיל את התוספת. לאחר מכן עקוב אחר ההוראות שעל המסך כדי להשלים את ההתקנה.

תחילת העבודה עם PyXLL

לאחר התקנת התוסף, הפעל את Excel. לפני שהוא יושק, תופיע הנחיה שתבקש ממך לעשות זאת התחל ניסיון אוֹ קנה עכשיו. תוקף גרסת הניסיון יפוג לאחר שלושים יום ולאחר מכן תצטרך לרכוש רישיון כדי להמשיך להשתמש ב-PyXLL.

הקלק על ה התחל ניסיון לַחְצָן. פעולה זו תפעיל את Excel עם התוספת המותקנת.

על כרטיסיית PyXLL לדוגמה, הקלק על ה על PyXLL לַחְצָן. זה יראה לך את הנתיב שבו התקנת את התוסף, יחד עם נתיבים לקובצי התצורה ויומן הרישום.

הנתיב המכיל את קובץ התצורה חשוב מכיוון שתצטרך לערוך את הקובץ מאוחר יותר, אז רשום אותו.

חשיפת פונקציות Python לאקסל

כדי לחשוף פונקציית Python ל-Excel כפונקציה מוגדרת על ידי משתמש (UDF), השתמש ב- @xl_func מְעַצֵב. מעצב זה מורה ל- PyXLL לרשום את הפונקציה ב- Excel, מה שהופך אותה לזמינה למשתמשים.

למשל, לחשוף פייתון fibonacci() פונקציה ל-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.

לאחר מכן גלול מטה אל "מודולים" והוסף את המודול שלך. לדוגמה, אם שמרת את הקובץ שלך בשם fibonacci.py, הוסף את השם "fibonacci" לרשימה:

זה יחשוף את פונקציות המודול המשתמשות ב- @xl_func מעצב לאקסל. לאחר מכן חזור ל-Excel וב- כרטיסיית PyXLL לדוגמה, הקלק על ה טען מחדש את PyXLL לחצן לסנכרון השינויים בקובץ התצורה. לאחר מכן תוכל לקרוא לפייתון פיבונאצ'י פועל כמו כל נוסחת אקסל אחרת.

אתה יכול ליצור כמה פונקציות שאתה צריך ולחשוף אותן לאקסל באותו אופן.

העברת נתונים בין Excel לפייתון

PyXLL תומך בשימוש בספריות Python חיצוניות, כמו Pandas. זה מאפשר לך להעביר נתונים מספריות אלה לפייתון ולהיפך. לדוגמה, אתה יכול השתמש ב-Pandas כדי ליצור מסגרת נתונים אקראית ולהעביר אותו לאקסל. ודא ש-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 מתפקד כמו נוסחת אקסל אחרת:

=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 עם היכולות האנליטיות שלה ותמיכה חזקה בעיבוד נתונים.