Google Cədvəllər üçün Açıq Mənbə Python API

Excel-dən Python-a zəng etməyi asanlaşdıran Python kitabxanası və əksinə.

Xlwings Excel fayl formatını manipulyasiya etmək üçün açıq mənbəli python API-dir. API-dən istifadə edərək hesabatlar hazırlamaq, UDF-lər (istifadəçi tərəfindən müəyyən edilmiş funksiyalar) yazmaq, makrolar yazmaq və Excel-i uzaqdan idarə etmək üçün python-dan Excel-i avtomatlaşdıra bilərsiniz. Bundan əlavə, API hüceyrələr, siyahılar, diapazonlar, NumPy massivləri, panda məlumat çərçivələri və panda seriyaları kimi məlumat strukturlarını manipulyasiya etməyə imkan verir.

Xlwings Microsoft Excel proqramının quraşdırılmasını tələb edir, ona görə də UDF-lərin yalnız Windows-da işləməsi istisna olmaqla, hər şey Windows və macOS-da işləyir.

Previous Next

Xlwings ilə işə başlamaq

Xlwings-i rəvan işləmək üçün sisteminizdə Python 3.5 və ya daha yüksək versiya quraşdırılmalıdır. PIP vasitəsilə quraşdırmanın tövsiyə olunan yolu. Zəhmət olmasa aşağıdakı əmrdən istifadə edin.

PIP Command vasitəsilə Xlwings quraşdırın

pip install xlwings

Conda vasitəsilə Xlwings quraşdırın

conda install xlwings

Python-dan Excel ilə qarşılıqlı əlaqə

Xlwings API Python istifadə edərək Microsoft Spreadsheets manipulyasiya etməyə imkan verir. API istifadə edərək, mövcud iş kitabına qoşula və ya xlwings.Book() metodundan istifadə edərək yenisini yarada bilərsiniz. Siz diapazonlara və diapazonlardan dəyərləri oxuya / yaza, diapazonları genişləndirə, məlumat növlərini asanlıqla çevirə bilərsiniz. Bundan əlavə, siz Excel İş Kitablarınıza şəkillər kimi Matplotlib və Plotly chart əlavə edə bilərsiniz.

Python vasitəsilə dinamik olaraq Excel diapazonlarının ölçülərini əldə edin

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

Excel-dən Python-a zəng edin

Açıq Mənbə cədvəl kitabxanası Xlwings proqram tərtibatçılarına Excel vasitəsilə Python ilə əlaqə saxlamağa imkan verir. Siz ya Xlwings Excel Add-In-in Run düyməsini və ya RunPython VBA funksiyasından istifadə etməklə Excel daxilində python funksiyalarına zəng edə bilərsiniz. Excel Əlavəsini istifadə etməyin yaxşı tərəfi odur ki, iş kitablarınızın makro-aktiv olmasına ehtiyacınız yoxdur və siz onu xlsx olaraq saxlaya bilərsiniz.

Microsoft Excel-ə QR kodları daxil etmək üçün Python Script istifadə edin

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)

Python istifadə edərək Excel-də İstifadəçi tərəfindən müəyyən edilmiş funksiyalar (UDF).

Xlwings kitabxanası tərtibatçılara proqramlı şəkildə Microsoft Excel fayl formatında İstifadəçi tərəfindən müəyyən edilmiş funksiyaları (UDF) yazmaq imkanı verir. Hazırda UDF-lər yalnız pəncərələrdə mövcuddur. API sadə funksiyalardan, massiv ölçülərinin sayından, dinamik massiv düsturlarından, NumPy ilə arrya düsturlarından və s. istifadə etməyə imkan verir.

Microsoft Excel-də RunPython vasitəsilə makrolara necə zəng etmək olar

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
 Azəri