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.
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