Cách tính hợp liền mạch Python vào Excel bằng PyXLL

Khi không có hàm Excel cho công việc hiện tại, lập trình viên Python thường tìm tới PyXLL. Dưới đây là cách tích hợp Python vào Excel bằng PyXLL.

Tích hợp Python và Excel

PyXLL là một công cụ xóa nhòa khoảng cách giữa Microsoft Excel và Python. Nó cho phép bạn tích hợp liền mạch code và chức năng Python vào bảng tính Excel. Với PyXLL, Excel trở thành nền tảng để nâng cấp thư viện và khả năng của Python.

PyXLL hoạt động như một add-in Excel. Bạn có thể dùng nó để viết các hàm & macro Python trực tiếp vào trong môi trường VBA của Excel. PyXLL sau đó hoạt động như trình biên dịch và chạy code trong các ô Excel, mở ra nhiều khả năng. Một vài trong số chúng bao gồm tự động hóa các nhiệm vụ phức tạp, phân tích dữ liệu nâng cao và trực quan hóa dữ liệu.

Tổng quan về PyXLL

PyXLL hoạt động bằng cách chạy trình phiên dịch Python trong quá trình Excel. Điều này làm code Python của bạn chạy trong PyXLL, truy cập trực tiếp tới dữ liệu và đối tượng Excel. Công cụ này được viết trong C++ và nó dùng công nghệ cơ bản tương tự như Excel. Điều đó có nghĩa code Python đang chạy trong PyXLL thường nhanh hơn code Excel VBA.

Cài đặt và thiết lập

Để cài đặt PyXLL, tới web PyXLL và tải add-in này. Đảm bảo phiên bản Python và Excel bạn chọn khớp với những gì đã cài trong hệ thống. PyXLL chỉ có sẵn cho phiên bản Excel trên Windows.

Tải PyXLL

Khi quá trình tải hoàn tất, mở nhắc lệnh và chạy:

pip install pyxll

Bạn cần cài đặt pip trên hệ thống để lệnh trên có thể chạy. Sau đó, dùng gói PyXLL để cài đặt add-in này:

pyxll install

Trình cài đặt này sẽ hỏi xem bạn đã tải add-in này hay chưa. Click Yes, rồi cung cấp đường dẫn tới file zip chứa add-in đó. Làm theo hướng dẫn trên màn hình để hoàn tất cài đặt.

Bắt đầu với PyXLL

Sau khi đã cài plugin này, mở Excel. Trước khi nó mở, cửa sổ hiện ra, nhắc bạn Start Trial hoặc Buy Now. Phiên bản dùng thử sẽ hết hạn sau 30 ngày. Sau đó, bạn cần mua giấy phép để tiếp tục dùng PyXLL.

Cài đặt PyXll

Click nút Start Trial. Điều này sẽ mở Excel với add-in đã cài. Trên tab PyXLL Example, click vào nút About PyXLL. Hành động này sẽ hiện cho bạn đường dẫn đã cài đặt add-in, cùng với các đường dẫn tới cấu hình và file log.

Microsoft Excel

Đường dẫn chứa file cấu hình quan trọng vì bạn cần chỉnh sửa nó sau đó, vì thế hãy ghi lại nó.

Hiển thị các hàm Python cho Excel

Để hiện hàm Python cho Excel, làm chức năng xác định người dùng (UDF), dùng decorator @xl_func. Decorator này hướng dẫn PyXLL đăng ký hàm với Excel, làm nó có sẵn cho mọi người dùng.

Ví dụ, để hiện hàm fibonacci() Python trên Excel làm UDF, bạn có thể dùng decorator @xl_func như sau:

from pyxll import xl_func

@xl_func
def fibonacci(n):
  """
  This is a Python function that calculates the Fibonacci sequence.
  """
  if n < 0:
    raise ValueError("n must be non-negative")
  elif n == 0 or n == 1:
    return n
  else:
    return fibonacci(n - 1) + fibonacci(n - 2)

Lưu code này lại bằng extension .py và ghi lại đường dẫn thư mục mà bạn lưu file.

Giờ mở file cấu hình PyXLL trong trình chỉnh sửa và cuộn xuống dưới dòng bắt đầu bằng “pythonpath”. Cài đặt này thường là danh sách các thư mục mà PyXLL sẽ tìm kiếm mô-đun Python. Thêm đường dẫn vào thư mục chứa mã nguồn hàm Fibonacci.

Thư mục chứa hàm Fibonacci

Sau đó, cuộn xuống dưới “modules” và thêm mô đun này. Ví dụ, nếu đã lưu file fibonacci.py, đặt tên “fibonacci” vào danh sách:

Modules

Hành động này sẽ hiện các hàm mô đun dùng decorator @xl_func trên Excel. Sau đó, quay lại Excel và trên tab PyXLL Example, click nút Reload PyXLL cho các thay đổi trong file cấu hình để đồng bộ. Sau đó, bạn có thể gọi hàm fibonacci giống như bất kỳ công thức Excel khác.

Nhập hàm

Bạn có thể tạo nhiều hàm khi cần và hiện chúng trên Excel theo cách tương tự.

Chuyển dữ liệu giữa Excel và Python

PyXLL hỗ trợ sử dụng các thư viện Python bên ngoài như Pandas. Nó cho phép bạn chuyển dữ liệu từ những thư viện này sang Python và ngược lại. Ví dụ, bạn có thể dùng Pandas để tạo khung dữ liệu ngẫu nhiên và chuyển nó sang Excel. Đảm bảo Pandas được cài trên hệ thống, sau đó thử code này:

from pyxll import xl_func
import pandas as pd
import numpy as np

@xl_func("int rows, int columns: dataframe<index=True>", auto_resize=True)
def random_dataframe(rows, columns):
   data = np.random.rand(rows, columns)
   column_names = [chr(ord('A') + x) for x in range(columns)]
   return pd.DataFrame(data, columns=column_names)

Bạn sẽ làm theo quá trình tương tự để hiện mô đun này và các hàm của nó trên Excel. Sau đó, gọi hàm random_dataframe như các công thức Excel khác:

=random_dataframe(10,5)

Bạn có thể thay đổi số hàng và cột như ý muốn.

Bảng dữ liệu trong Excel

Trên đây là những điều bạn cần biết về cách tích hợp Python liền mạch vào Excel bằng PyXLL. Hi vọng bài viết hữu ích với các bạn.

Thứ Hai, 16/10/2023 17:10
31 👨 482
0 Bình luận
Sắp xếp theo
    ❖ Python