קוד פתוח של Python API עבור Google Sheets
ספריית Python שמקלה לקרוא לפיתון מאקסל ולהיפך.
Xlwings הוא API של python בקוד פתוח לעיבוד פורמט קובץ Excel. באמצעות ה-API תוכלו לבצע אוטומציה של Excel מ-Python כדי להפיק דוחות, לכתוב UDFs (פונקציות מוגדרות על ידי משתמש), לכתוב פקודות מאקרו ולשלוט ב-Excel מרחוק. יתר על כן, ה-API מאפשר לתפעל מבני נתונים כמו תאים, רשימות, טווחים, מערכי NumPy, מסגרות נתונים של פנדה וסדרות פנדה.
Xlwings דורש התקנה של Microsoft Excel, כך שהכל עובד ב-Windows וב-macOS, פרט לכך שה-UDFs עובד רק ב-Windows.
תחילת העבודה עם 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