1. Ürün:% s
  2.   E-tablo
  3.   Python
  4.   Xlwings
 
  

Google E-Tablolar için Açık Kaynak Python API'sı

Excel'den Python'u aramayı kolaylaştıran Python kitaplığı.

Xlwings, Excel dosya biçimini değiştirmek için açık kaynaklı bir python API'sidir. API'yi kullanarak raporlar oluşturmak, UDF'ler (kullanıcı tanımlı işlevler) yazmak, makrolar yazmak ve Excel'i uzaktan kontrol etmek için python'dan excel'i otomatikleştirebilirsiniz. Ayrıca API, hücreler, listeler, aralıklar, NumPy dizileri, panda veri çerçeveleri ve panda serileri gibi veri yapılarının manipüle edilmesine izin verir.

Xlwings, Microsoft Excel'in yüklenmesini gerektirir, bu nedenle UDF'lerin yalnızca Windows'ta çalışması dışında her şey Windows ve macOS'ta çalışır.

Previous Next

Xlwings'e Başlarken

xlwings'i sorunsuz bir şekilde çalıştırmak için sisteminizde Python 3.5 veya daha yüksek bir sürümün yüklü olması gerekir. PIP yoluyla yüklemenin önerilen yolu. Lütfen aşağıdaki komutu kullanın.

Xlwings'i PIP Komutu ile Kurun

pip install xlwings

Xlwings'i Conda aracılığıyla yükleyin

conda install xlwings

Python'dan Excel ile etkileşim kurun

Xlwings API, Python kullanarak Microsoft Elektronik Tablolarının değiştirilmesine izin verir. API'yi kullanarak mevcut bir çalışma kitabına bağlanabilir veya xlwings.Book() yöntemini kullanarak yeni bir çalışma kitabı oluşturabilirsiniz. Aralıklara ve aralıklardan değerleri okuyabilir/yazabilir, aralıkları genişletebilir, veri türlerini kolayca dönüştürebilirsiniz. Ayrıca Matplotlib & Plotly grafiğini Excel Çalışma Kitaplarınıza resim olarak ekleyebilirsiniz.

Excel Ranges Dynamically via 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

Python'u Excel'den arayın

Açık Kaynak e-tablo kitaplığı Xlwings, yazılım geliştiricilerin Python ile Excel aracılığıyla iletişim kurmasına olanak tanır. Xlwings Excel Eklentisinin Çalıştır düğmesini kullanarak veya RunPython VBA işlevini kullanarak excel'inizin içindeki python işlevlerini çağırabilirsiniz. Excel Eklentisini kullanmanın iyi yanı, çalışma kitaplarınızın makro etkin olmasına gerek duymamanız ve onu xlsx olarak kaydedebilmenizdir.

Microsoft Excel'de R kodları eklemek için Python script kullanın

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 kullanarak Excel'de Kullanıcı Tanımlı İşlevler (UDF'ler)

Xlwings kitaplığı, geliştiricilere Microsoft Excel dosya biçiminde programlı olarak Kullanıcı Tanımlı İşlevler (UDF'ler) yazma yeteneği verir. Şu anda UDF'ler yalnızca pencerelerde kullanılabilir. API, basit işlevlerin, dizi boyutlarının sayısının, dinamik dizi formüllerinin, NumPy ile arya formüllerinin ve daha fazlasının kullanılmasına izin verir.

Marcos'u Microsoft Excel'de RunPython ile nasıl çağırın

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
 Türkçe