1. Produk
  2.   Hamparan
  3.   Python
  4.   Xlwings
 
  

API Python Sumber Terbuka untuk Helaian Google

Pustaka Python yang memudahkan untuk memanggil Python daripada Excel dan sebaliknya.

Xlwings ialah API python sumber terbuka untuk memanipulasi format fail Excel. Menggunakan API anda boleh mengautomasikan excel daripada python untuk menghasilkan laporan, menulis UDF (fungsi yang ditentukan pengguna), menulis makro dan mengawal Excel dari jauh. Tambahan pula, API membenarkan memanipulasi struktur data seperti sel, senarai, julat, tatasusunan NumPy, bingkai data panda dan siri panda.

Xlwings memerlukan pemasangan Microsoft Excel, jadi semuanya berfungsi pada Windows dan macOS kecuali UDF hanya berfungsi pada Windows.

Previous Next

Bermula dengan Xlwings

Anda perlu memasang Python 3.5 atau lebih tinggi pada sistem anda untuk menjalankan xlwings dengan lancar. Cara yang disyorkan untuk memasang melalui PIP. Sila gunakan arahan berikut.

Pasang Xlwings melalui Perintah PIP

pip install xlwings

Pasang Xlwings melalui Conda

conda install xlwings

Berinteraksi dengan Excel daripada Python

API Xlwings membenarkan memanipulasi Hamparan Microsoft menggunakan Python. Menggunakan API anda boleh menyambung ke buku kerja sedia ada atau mencipta yang baharu menggunakan kaedah xlwings.Book(). Anda boleh membaca/menulis nilai ke & daripada julat, mengembangkan julat, menukar jenis data dengan mudah. Tambahan pula, anda boleh menambah carta Matplotlib & Plotly sebagai gambar dalam Buku Kerja Excel anda.

Dapatkan Dimensi Julat Excel Secara Dinamik melalui 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

Panggil Python daripada Excel

Pustaka hamparan Sumber Terbuka Xlwings membenarkan pembangun perisian berkomunikasi dengan Python melalui Excel. Anda boleh memanggil funciton python di dalam excel anda sama ada dengan menggunakan butang Jalankan Xlwings Excel Add-In atau dengan menggunakan fungsi RunPython VBA. Perkara yang baik tentang menggunakan Excel Add-In ialah anda tidak memerlukan buku kerja anda untuk didayakan makro, dan anda boleh menyimpannya sebagai xlsx.

Gunakan Skrip Python untuk memasukkan kod QR dalam 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)

Fungsi Ditakrifkan Pengguna (UDF) dalam Excel menggunakan Python

Pustaka Xlwings memberi pembangun keupayaan untuk menulis Fungsi Takrifan Pengguna (UDF) di dalam format fail Microsoft Excel secara terprogram. Pada masa ini, UDF hanya tersedia pada tingkap. API membenarkan penggunaan fungsi mudah, bilangan dimensi tatasusunan, formula tatasusunan dinamik, formula arrya dengan NumPy dan banyak lagi.

Cara Memanggil Makro melalui RunPython dalam 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
 Melayu