קוד פתוח של Python API עבור Google Sheets

ספריית Python שמקלה לקרוא לפיתון מאקסל ולהיפך.

Xlwings הוא API של python בקוד פתוח לעיבוד פורמט קובץ Excel. באמצעות ה-API תוכלו לבצע אוטומציה של Excel מ-Python כדי להפיק דוחות, לכתוב UDFs (פונקציות מוגדרות על ידי משתמש), לכתוב פקודות מאקרו ולשלוט ב-Excel מרחוק. יתר על כן, ה-API מאפשר לתפעל מבני נתונים כמו תאים, רשימות, טווחים, מערכי NumPy, מסגרות נתונים של פנדה וסדרות פנדה.

Xlwings דורש התקנה של Microsoft Excel, כך שהכל עובד ב-Windows וב-macOS, פרט לכך שה-UDFs עובד רק ב-Windows.

Previous Next

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

עליך להתקין את Python 3.5 ומעלה במערכת שלך כדי להפעיל את xlwings בצורה חלקה. הדרך המומלצת להתקנה באמצעות PIP. אנא השתמש בפקודה הבאה.

התקן Xlwings באמצעות PIP Command

pip install xlwings

התקן Xlwings דרך Conda

conda install xlwings

אינטראקציה עם Excel מ- Python

Xlwings API מאפשר מניפולציה של גיליונות אלקטרוניים של Microsoft באמצעות Python. באמצעות ה-API תוכלו להתחבר לחוברת עבודה קיימת או ליצור חוברת עבודה חדשה באמצעות שיטת xlwings.Book(). אתה יכול לקרוא/לכתוב ערכים אל ומטווחים, להרחיב טווחים, להמיר סוגי נתונים בקלות. יתר על כן, אתה יכול להוסיף תרשים Matplotlib & Plotly כתמונות בחוברות העבודה שלך ב- Excel.

קבל מימדים של טווחי Excel באופן דינמי באמצעות Python

sheet = xw.Book().sheets[0]
sheet['A1'].value = [[1,2], [3,4]]
range1 = sheet['A1'].expand('table')  # or just .expand()
range2 = sheet['A1'].options(expand='table')
range1.value
[[1.0, 2.0], [3.0, 4.0]]
range2.value
[[1.0, 2.0], [3.0, 4.0]]
sheet['A3'].value = [5, 6]
range1.value
[[1.0, 2.0], [3.0, 4.0]]
range2.value

התקשר לפייתון מאקסל

ספריית הגיליון האלקטרוני בקוד פתוח Xlwings מאפשרת למפתחי תוכנה לתקשר עם Python באמצעות Excel. אתה יכול לקרוא ל-python funcitons בתוך האקסל שלך או על ידי שימוש בכפתור ההפעלה של Xlwings Excel Add-In או על ידי שימוש בפונקציית RunPython VBA. הדבר הטוב בשימוש בתוסף Excel הוא שאתה לא צריך חוברות העבודה שלך להיות מאופשר מאקרו, ואתה יכול לשמור אותו בתור xlsx.

השתמש ב-Python Script כדי להכניס קודי R ב-Microsoft Excel

import tempfile
import segno
import xlwings as xw
# Update this with the name of your workbook
book = xw.Book('qr.xlsx')
sheet = xw.sheets[0]
# Update this with the starting cell of your URLs
start_cell = sheet['A1']
urls = start_cell.options(expand='down', ndim=1).value
# Loop through each URL and generate the QR code
for ix, url in enumerate(urls):
    # Generate the QR code
    qr = segno.make(url)
    with tempfile.TemporaryDirectory() as td:
        # Save the QR code as a temporary svg file. If you are on macOS, use pdf
        # instead and if you don't have Microsoft 365, you may have to use png
        filepath = f'{td}/qr.svg'
        qr.save(filepath, scale=5, border=0, finder_dark='#15a43a')
        # Insert the QR code to the right of the URL
        destination_cell = start_cell.offset(row_offset=ix, column_offset=1)
        sheet.pictures.add(filepath,
                           left=destination_cell.left,
                           top=destination_cell.top)

פונקציות בהגדרת משתמש (UDF) ב-Excel באמצעות Python

ספריית Xlwings מעניקה למפתחים את היכולת לכתוב פונקציות בהגדרת משתמש (UDF) בתוך פורמט הקובץ של Microsoft Excel באופן פרוגרמטי. נכון לעכשיו, UDFs זמינים רק בחלונות. ה-API מאפשר שימוש בפונקציות פשוטות, מספר ממדי מערך, נוסחאות מערך דינמיות, נוסחאות arrya עם NumPy ועוד.

כיצד להתקשר מרקוס דרך RunPython ב- Microsoft Excel

import xlwings as xw
@xw.sub
def my_macro():
    """Writes the name of the Workbook into Range("A1") of Sheet 1"""
    wb = xw.Book.caller()
    wb.sheets[0].range('A1').value = wb.name
 עִברִית