Excel là một phước lành, nhưng nó cũng là một lời nguyền. Khi nói đến dữ liệu đủ nhỏ và các thao tác đủ đơn giản, Excel là vua. Tuy nhiên, một khi bạn thấy mình nỗ lực bên ngoài những khu vực đó, điều đó sẽ trở thành một nỗi đau. Chắc chắn rồi, bạn có thể sử dụng Excel VBA để giải quyết các sự cố như vậy, nhưng vào năm 2020, bạn có thể cảm ơn những ngôi sao may mắn của mình vì bạn không cần phải
Giá như có cách tích hợp Excel với Python để cho Excel… đôi cánh. Vâng, bây giờ có. Thư viện python có tên xlwings cho phép bạn gọi các tập lệnh Python thông qua VBA và truyền dữ liệu giữa hai tập lệnh
Tại sao nên tích hợp Python với Excel VBA?
Sự thật của vấn đề là bạn có thể làm bất cứ điều gì trong VBA. Vì vậy, nếu đúng như vậy, tại sao bạn lại muốn sử dụng Python?
- Bạn có thể tạo một hàm tùy chỉnh trong Excel mà không cần học VBA (nếu bạn chưa biết)
- Người dùng của bạn cảm thấy thoải mái trong Excel
- Bạn có thể tăng tốc đáng kể hoạt động dữ liệu của mình bằng cách sử dụng Python
- Có các thư viện dành cho mọi thứ trong Python (Machine Learning, Data Science, v.v.)
- Bởi vì bạn có thể
Ảnh của Fotis Fotopoulos trên BaptThiết lập để sử dụng xlwings
Điều đầu tiên chúng ta cần làm, như với bất kỳ thư viện mới nào mà chúng ta muốn sử dụng, là cài đặt nó. Nó rất dễ làm; . Vì vậy, hãy tiếp tục và nhập vào thiết bị đầu cuối của bạn
Khi thư viện đã được tải xuống và cài đặt, chúng ta cần cài đặt phần tích hợp Excel. Đảm bảo bạn đã đóng tất cả các phiên bản Excel của mình và trong bất kỳ loại thiết bị đầu cuối nào
Giả sử bạn không gặp lỗi, bạn sẽ có thể tiếp tục. Tuy nhiên nhiều khi trên Win10 với Excel 2016 mọi người sẽ gặp lỗi sau
xlwings 0.17.0[Errno 2] No such file or directory: 'C:\\Users\\costa\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'
Nếu bạn là một trong những người may mắn gặp phải lỗi trên, tất cả những gì bạn cần làm là tạo thư mục bị thiếu. Bạn có thể làm điều đó một cách dễ dàng bằng cách sử dụng lệnh mkdir. Trong trường hợp của tôi, tôi đã làm
mkdir C:\\Users\\costa\\AppData\\Roaming\\Microsoft\\Excel\\XLSTARTGiả sử cài đặt thành công tích hợp excel với thư viện python, sự khác biệt chính mà bạn sẽ nhận thấy ngay là trong Excel
Kích hoạt chức năng do người dùng xác định cho xlwings
Đầu tiên, chúng ta cần tải Add-in Excel. Bạn có thể nhấn Alt, L, H rồi điều hướng đến thư mục trên để tải plugin. Khi bạn đã hoàn tất, bạn sẽ có thể thấy những điều sau đây
Cuối cùng, bạn cần Kích hoạt quyền truy cập Tin cậy vào mô hình đối tượng dự án VBA. Bạn có thể làm điều đó bằng cách điều hướng đến Tệp > Tùy chọn > Trung tâm tin cậy > Cài đặt trung tâm tin cậy > Cài đặt macro
Ảnh của Pakata Goh trên BaptBắt đầu với xlwings
Có hai cách chính để bạn có thể chuyển từ Excel sang Python (và ngược lại). Cách đầu tiên là gọi tập lệnh Python trực tiếp từ VBA, trong khi cách còn lại là thông qua Hàm do người dùng xác định. Hãy để chúng tôi có một cái nhìn nhanh về cả hai
Để tránh nhầm lẫn và luôn thiết lập chính xác, xlwings đề nghị tạo bảng tính Excel của bạn, sẵn sàng hoạt động. Sau đó chúng ta hãy sử dụng chức năng này. Sử dụng thiết bị đầu cuối, chúng tôi điều hướng đến thư mục chúng tôi thích và nhập
xlwings quickstart ProjectNameTôi đang gọi đây là MyFirstPythonXL. Lệnh trên sẽ tạo một thư mục mới trong thư mục được điều hướng trước của bạn với một trang tính Excel và tệp python
khai trương. xlsm, bạn sẽ ngay lập tức nhận thấy một trang tính Excel mới có tên _xlwings. conf. Nếu bạn muốn ghi đè cài đặt mặc định của xlwings, tất cả những gì bạn phải làm là đổi tên trang tính này và xóa dấu gạch dưới bắt đầu. Và với điều đó, tất cả chúng ta đã thiết lập và sẵn sàng bắt đầu sử dụng xlwings
VBA sang Python
Trước khi bắt đầu viết mã, trước tiên chúng ta hãy đảm bảo rằng tất cả chúng ta đều ở trên cùng một trang. Để hiển thị trình soạn thảo VBA Excel của chúng tôi, hãy nhấn Alt + F11. Điều này sẽ trả về màn hình sau
Trình soạn thảo VBA với xlwings
Điều quan trọng cần lưu ý ở đây là mã này sẽ làm như sau
- Tìm Tập lệnh Python ở cùng vị trí với bảng tính
- Tìm Tập lệnh Python có cùng tên với bảng tính (nhưng có. phần mở rộng py)
- Từ Python Script, gọi hàm “main()”
Không có gì khó chịu nữa, chúng ta hãy xem xét một vài ví dụ về cách sử dụng điều này
ví dụ 1. Thao tác bên ngoài Excel và trả lại Kết quả
Trong ví dụ này, chúng ta sẽ thấy cách bạn thực hiện các thao tác bên ngoài Excel, nhưng sau đó trả về kết quả của bạn trong bảng tính. Điều này có thể có vô số trường hợp sử dụng
Chúng tôi sẽ lấy dữ liệu từ tệp CSV, thực hiện sửa đổi dữ liệu đã nói, sau đó chuyển đầu ra sang Excel. Hãy xem lại nó dễ dàng như thế nào
Đầu tiên, mã VBA
Tôi đã để cái này hoàn toàn không thay đổi so với mặc định
Sau đó, mã Python
Kết quả nào sau đây
xlwings trong hành động
ví dụ 2. Sử dụng đầu vào Excel để thúc đẩy các hoạt động
Trong ví dụ này, chúng tôi sẽ đọc đầu vào từ Excel, thực hiện điều gì đó với nó trong Python, sau đó chuyển kết quả trở lại Excel
Cụ thể hơn, chúng ta sẽ đọc Lời chào, Tên và vị trí tệp nơi chúng ta có thể tìm thấy truyện cười. Sau đó, tập lệnh Python của chúng tôi sẽ lấy một dòng ngẫu nhiên từ tệp và trả lại cho chúng tôi một trò đùa
Đầu tiên, mã VBA
Tôi đã để cái này hoàn toàn không thay đổi so với mặc định
Sau đó, mã Python
Điều đó mang lại cho chúng ta
Hàm do người dùng xác định với xlwings
Theo cách tương tự như trước đây, chúng tôi sẽ thay đổi mã trong tệp python. Để biến một thứ gì đó thành Hàm do người dùng xác định trong Excel, tất cả những gì chúng ta cần làm là bao gồm '@xw. func’ trước dòng chức năng đang bật
Mã Python
Kết quả
Phần kết luận
Tôi nghĩ bạn sẽ đồng ý rằng đây là một thư viện nhỏ tiện lợi. Nếu bạn giống tôi và bạn thích làm việc với Python hơn là VBA nhưng cần làm việc trong bảng tính, thì đây có thể là một công cụ đặc biệt