Hướng dẫn cách tích hợp Python vào Excel bằng PyXLL

Hướng dẫn cách tích hợp Python vào Excel bằng PyXLL

Chia sẻ kiến thức 06/10/2023

Khi không có hàm Excel nào phù hợp cho công việc, các lập trình viên Python sẽ tìm đến PyXLL.

PyXLL là một công cụ cầu nối giữa Microsoft Excel và Python. Nó cho phép bạn tích hợp liền mạch code và hàm Python vào bảng tính Excel. Với PyXLL, Excel trở thành nền tảng để tận dụng các thư viện và khả năng của Python.
VIDEO MUO TRONG NGÀY

 
 
 
 
Đóng
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

PyXLL hoạt động như một phần bổ trợ Excel. Bạn có thể sử dụng nó để viết các hàm và macro Python trực tiếp trong môi trường VBA của Excel. PyXLL sau đó đóng vai trò là trình thông dịch và chạy code trong các ô Excel, mở ra nhiều khả năng. Một số trong đó bao gồm tự động hóa các tác 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 thông dịch Python trong quy trình Excel. Điều này mang lại cho code Python chạy trong PyXLL của bạn quyền truy cập trực tiếp vào dữ liệu và đối tượng Excel. Công cụ này được viết bằng C++ và sử dụng công nghệ cơ bản tương tự như Excel. Điều này có nghĩa là mã Python chạy trong PyXLL thường nhanh hơn nhiều so với code VBA của Excel.

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

Để cài đặt PyXLL, hãy truy cập trang web PyXLL và tải xuống phần bổ trợ. Đảm bảo rằng phiên bản Python và phiên bản Excel bạn chọn khớp với phiên bản được cài đặt trong hệ thống của bạn. PyXLL chỉ khả dụng cho phiên bản Windows của Excel.

 

Khi quá trình tải xuống hoàn tất, hãy mở dấu nhắc lệnh và chạy lệnh này:

pip install pyxll

Bạn cần cài đặt Pip trong hệ thống của mình để lệnh trên chạy. Sau đó sử dụng gói PyXLL để cài đặt bổ trợ PyXLL:

pyxll install

Trình cài đặt sẽ hỏi bạn đã tải xuống phần bổ trợ chưa. Nhập Yes và sau đó cung cấp đường dẫn đến tệp zip chứa bổ trợ. Sau đó 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

Khi bạn đã cài đặt plugin, hãy khởi chạy Excel. Trước khi nó khởi chạy, một lời nhắc sẽ bật lên yêu cầu bạn Bắt đầu dùng thử (Start trial) hoặc Mua ngay (Buy now). Phiên bản dùng thử sẽ hết hạn sau ba mươi ngày và khi đó bạn sẽ cần mua giấy phép để tiếp tục sử dụng PyXLL.

 

Bấm vào nút Bắt đầu dùng thử (Start trial). Thao tác này sẽ khởi chạy Excel với phần bổ trợ đã cài đặt.

Trên Tab Ví dụ PyXLL (PyXLL Example), nhấp vào nút Giới thiệu về PyXLL (About PyXLL). Thao tác này sẽ hiển thị cho bạn đường dẫn mà bạn đã cài đặt phần bổ trợ, cùng với đường dẫn đến tệp nhật ký và cấu hình.

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

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

Để hiển thị hàm Python sang Excel dưới dạng hàm do người dùng xác định (UDF), hãy sử dụng decorator @xl_func. Decorator này hướng dẫn PyXLL đăng ký hàm với Excel, cung cấp hàm này cho người dùng.

Ví dụ: để hiển thị hàm Python fibonacci() sang Excel dưới dạng UDF, bạn có thể sử 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 mã này với phần mở rộng .py và ghi lại đường dẫn của thư mục mà bạn lưu tệp.

Bây giờ, hãy mở tệp cấu hình PyXLL trong trình chỉnh sửa và kéo xuống 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 các mô-đun Python. Thêm đường dẫn vào thư mục chứa mã nguồn hàm Fibonacci.

 

Sau đó kéo xuống “modules” và thêm mô-đun của bạn. Ví dụ: nếu bạn đã lưu tệp của mình dưới dạng fibonacci.py, hãy thêm tên “fibonacci” vào danh sách:

 

Điều này sẽ hiển thị các hàm mô-đun sử dụng decorator @xl_func cho Excel. Sau đó quay lại Excel và trên Tab Ví dụ PyXLL, nhấp vào nút Tải lại PyXLL (Reload PyXLL) để đồng bộ hóa những thay đổi trong tệp cấu hình. Sau đó, bạn có thể gọi hàm fibonacci của Python giống như bất kỳ công thức Excel nào khác.

 

Bạn có thể tạo bao nhiêu hàm tùy thích và hiển thị chúng trong Excel theo cách tương tự.

Truyề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, ví dụ như Pandas. Nó cho phép bạn truyền dữ liệu từ các thư viện này sang Python và ngược lại. Ví dụ: bạn có thể sử dụng Pandas để tạo một khung dữ liệu ngẫu nhiên và chuyển nó sang Excel. Hãy đảm bảo rằng Pandas đã được cài đặt trong hệ thống của bạn, 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 nên làm theo quy trình tương tự để hiển thị mô-đun này và các chức năng của nó trong Excel. Sau đó thử gọi hàm Random_dataframe giống như cách bạn thực hiện với công thức Excel khác:

=random_dataframe(10,5)

Bạn có thể thay đổi số hàng và cột tùy thích.

Bạn có thể chuyển các khung dữ liệu được xác định trước của mình sang Excel theo cách tương tự. 

Hạn chế của PyXLL

  • Khả năng tương thích với Windows và Excel: PyXLL được thiết kế chủ yếu cho Windows và hoạt động với Microsoft Excel trên Windows. Nó có thể có chức năng hạn chế hoặc các vấn đề tương thích trên nền tảng không phải Windows vì nó được tối ưu hóa cho môi trường Windows.
  • Triển khai: Việc triển khai bảng tính hỗ trợ PyXLL cho người dùng cuối yêu cầu họ phải cài đặt Python với mức độ phụ thuộc tối thiểu hoặc thời gian chạy Python đi kèm với bảng tính. Điều này có nghĩa là người dùng muốn sử dụng bảng tính hỗ trợ PyXLL cần phải cài đặt Python trên máy tính của họ.
  • Thời gian làm quen: Sử dụng PyXLL một cách hiệu quả đòi hỏi một số kiến ​​thức về lập trình Python và làm quen với mô hình đối tượng của Excel. Người dùng không quen thuộc với mô hình đối tượng của Python hoặc Excel có thể cần đầu tư thời gian tìm hiểu các khái niệm này trước khi sử dụng đầy đủ các khả năng của PyXLL.
  • Chi phí: PyXLL là một sản phẩm thương mại và tùy thuộc vào cách sử dụng cũng như yêu cầu của bạn, có thể có chi phí giấy phép liên quan đến việc sử dụng nó. Chi phí sử dụng PyXLL phụ thuộc vào các yếu tố như số lượng người dùng, quy mô triển khai và thỏa thuận cấp phép.

Bạn có nên tiếp tục sử dụng các hàm Excel?

Câu trả lời phụ thuộc vào những gì bạn muốn thực hiện. Việc sử dụng các hàm Excel gốc khi chúng có sẵn luôn là điều hợp lý. Tuy nhiên, đối với những tác vụ phức tạp hơn mà các hàm dựng sẵn của Excel không thể xử lý được thì PyXLL là một giải pháp tuyệt vời.

Tìm hiểu ngay chương trình học công nghệ thông tin trực tuyến tại FUNiX ở đây:

Vân Nguyễn

Dịch từ: https://www.makeuseof.com/pyxll-python-excell-seamlessly-integrate/

ĐĂNG KÝ TƯ VẤN HỌC LẬP TRÌNH TẠI FUNiX

Bình luận (
0
)

Bài liên quan

  • Tầng 0, tòa nhà FPT, 17 Duy Tân, Q. Cầu Giấy, Hà Nội
  • info@funix.edu.vn
  • 0782313602 (Zalo, Viber)        
Chat Button
FUNiX V2 GenAI Chatbot ×

yêu cầu gọi lại