API Python nguồn mở cho Google Trang tính

Thư viện Python giúp bạn dễ dàng gọi Python từ Excel và ngược lại.

Xlwings là một API python mã nguồn mở để thao tác định dạng tệp Excel. Sử dụng API, bạn có thể tự động hóa excel từ python để tạo báo cáo, viết UDF (hàm do người dùng xác định), viết macro và điều khiển Excel từ xa. Hơn nữa, API cho phép thao tác các cấu trúc dữ liệu như ô, danh sách, phạm vi, mảng NumPy, khung dữ liệu gấu trúc và chuỗi gấu trúc.

Xlwings yêu cầu cài đặt Microsoft Excel, vì vậy mọi thứ hoạt động trên Windows và macOS ngoại trừ việc UDF chỉ hoạt động trên Windows.

Previous Next

Bắt đầu với Xlwings

Bạn cần phải cài đặt Python 3.5 trở lên trên hệ thống của mình để chạy xlwings một cách trơn tru. Cách được khuyến nghị để cài đặt qua PIP. Vui lòng sử dụng lệnh sau.

Cài đặt Xlwings thông qua PIP Command

pip install xlwings

Cài đặt Xlwings qua Conda

conda install xlwings

Tương tác với Excel từ Python

API Xlwings cho phép thao tác Bảng tính Microsoft bằng Python. Sử dụng API, bạn có thể kết nối với sổ làm việc exisitng hoặc tạo một sổ làm việc mới bằng phương thức xlwings.Book (). Bạn có thể đọc / ghi giá trị vào & từ phạm vi, mở rộng phạm vi, chuyển đổi kiểu dữ liệu một cách dễ dàng. Hơn nữa, bạn có thể thêm biểu đồ Matplotlib & Plotly dưới dạng ảnh trong Sổ làm việc Excel của mình.

Lấy kích thước của Excel Ranges Dynamically thông qua 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

Gọi Python từ Excel

Thư viện bảng tính nguồn mở Xlwings cho phép các nhà phát triển phần mềm giao tiếp với Python thông qua Excel. Bạn có thể gọi các hàm python bên trong excel của mình bằng cách sử dụng nút Run của Xlwings Excel Add-In hoặc bằng cách sử dụng hàm RunPython VBA. Ưu điểm của việc sử dụng Excel Add-In là bạn không cần bật macro cho sổ làm việc của mình và bạn có thể lưu nó dưới dạng xlsx.

Dùng Python Script để chèn mã R trong 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)

Hàm do người dùng xác định (UDF) trong Excel bằng Python

Thư viện Xlwings cung cấp cho các nhà phát triển khả năng ghi các Hàm do Người dùng Xác định (UDF) bên trong định dạng tệp Microsoft Excel theo chương trình. Hiện tại, UDF chỉ khả dụng trên windows. API cho phép sử dụng các chức năng đơn giản, số kích thước mảng, công thức mảng động, công thức arrya với NumPy và hơn thế nữa.

Cách gọi Macro qua RunPython trong 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
 Tiếng Việt