Bạn có thể sử dụng macro Python cho Excel không?
Trong thời đại Dữ liệu này, python đã trở thành ngôn ngữ được nhiều nhà phát triển trên toàn cầu áp dụng rộng rãi nhất. Điều này có nghĩa là có rất nhiều thư viện tiềm năng đang chờ được sử dụng Show Mặc dù python gần đây đã đạt được đặc điểm là lựa chọn đầu tiên để phân tích dữ liệu và có rất nhiều ứng dụng trải dài từ mức sử dụng thấp đến nặng cho nhiều tác vụ; Hãy tưởng tượng nếu chúng ta có thể sử dụng các thư viện nguồn mở có sẵn trong python để tự động hóa quy trình công việc của mình trong Excel; . Đứng trên vai của cộng đồng python nguồn mở khổng lồ có hàng nghìn gói cho nhiều trường hợp sử dụng khác nhau, chúng tôi có thể sử dụng chức năng của chúng trong Excel Tôi có một yêu cầu như vậy mà tôi muốn thảo luận bên dưới và với sự trợ giúp của xlwings addin install 3, tôi đã có thể tích hợp giao diện người dùng Excel của mình với chương trình phụ trợ python thông qua VBA và tự động hóa một quy trình thủ công cồng kềnh chỉ bằng một nút bấmDo đó, bài đăng này chủ yếu nhằm mục đích chỉ cho bạn cách bạn có thể tận dụng gói python mạnh mẽ này có tên là xlwings addin install 3 để giao tiếp với Excel thông qua VBA và trong quá trình này, tự động hóa một số tác vụ. Có thể có cách giải quyết VBA cho mã python nhưng đối với trường hợp sử dụng cụ thể của tôi, tôi không thể bỏ qua nhu cầu về python vì VBA không thể thực hiện một số tác vụ mà một vài thư viện python như xlwings addin install 5 có khả năng thực hiệnVấn đềTôi duy trì một trang tính mà tôi sử dụng để theo dõi các lượt chia sẻ của mình và cách chúng hoạt động vào cuối ngày. Đối với điều này, tôi cần lấy giá đóng cửa cho mỗi cổ phiếu mà tôi có trong danh mục đầu tư của mình và nhập thủ công giá đó mỗi ngày một cách siêng năng. Bất kỳ quy trình thủ công nào cũng dễ xảy ra lỗi và tôi đã từng mắc phải lỗi này trước đây khi tôi mắc sai lầm khi cập nhật giá đóng cửa của một số cổ phiếu và tính toán của tôi cho thấy tôi đang ở một vị trí rủi ro hơn nhiều so với tưởng tượng; . Những người sử dụng numpad trên bàn phím có thể liên quan đến vấn đề này Bây giờ, tôi biết đến thư viện này có tên là xlwings addin install 5được duy trì bởi Swapnil Jariwala giúp lấy dữ liệu từ các máy chủ NSE của tất cả dữ liệu lịch sử liên quan đến bất kỳ quyền chọn/cổ phiếu cụ thể nào được liệt kê trên NSE nhưng thư viện được viết hoàn toàn bằng python. Chỉ khi tôi bằng cách nào đó có thể sử dụng sức mạnh của python trong Excel thì nó mới tuyệt vời như vậyVà điều đó hoàn toàn có thể. Có một thư viện python khác có tên là xlwings addin install 3 đặc biệt giải quyết vấn đề tích hợp excel này với python và voila. Vấn đề được giải quyếtĐể cung cấp cho bạn một số thông tin cơ bản về vấn đề này, đây là một phần của trang tính mà tôi có để giữ các tài khoản chia sẻ của mình Tôi có Số ISIN của tập lệnh/cổ phiếu/cổ phiếu và tên của nó, Giá mua trung bình được tham chiếu từ các trang tính khác trong cùng sổ làm việc này, Giá đóng cửa mà tôi đã sử dụng để nhập thủ công vào cuối ngày và dựa trên mỗi Cuối cùng, bạn sẽ có thể tạo một cái gì đó như sau trong hành động Thiết lập xlwings Giống như bất kỳ gói nào khác, bạn chỉ cần cài đặt `xlwings` bằng trình cài đặt gói python như sau pip install xlwings Tôi khuyên bạn nên tạo một môi trường ảo cho dự án này để tránh xung đột phụ thuộc trong cài đặt gói hiện có của bạn. Bài đăng này sẽ không đề cập đến nó nhưng bạn có thể xem tại đây nếu bạn muốn cài đặt một môi trường ảo với pip hoặc nếu bạn thích conda như tôi Một phần của đường ống được đặt tôi. e. đường ống trăn. Tiếp theo, bạn nên cài đặt phần cần thiết để tích hợp excel với xlwings. Vì thế, hãy lưu và đóng tất cả các sổ làm việc excel mà bạn hiện đang mở và từ môi trường mà bạn đã cài đặt xlwings, chỉ cần chạy lệnh sau xlwings addin install Điều này sẽ diễn ra liền mạch nhưng đôi khi, nếu bạn đang sử dụng máy Windows 10 với Excel 2016, bạn có thể gặp lỗi như bên dưới xlwings 0.17.0[Errno 2] No such file or directory: 'C:\\Users\\nayak\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam' Điều này có thể được khắc phục đơn giản bằng cách tạo thư mục bị thiếu bằng lệnh mkdir đơn giản ________số 8_______Sau khi cài đặt thành công xlwings, bạn sẽ thấy khi mở Excel lần sau, trên thanh công cụ ở trên cùng, một tab được tạo cho `xlwings`. Tab này cũng có các đường dẫn trình thông dịch và python cần chỉ định trong trường hợp bạn có một môi trường ảo khác mà qua đó bạn muốn thực thi các hàm python Vì tôi sử dụng anaconda để duy trì môi trường của mình nên tôi đã cung cấp đường dẫn đến Conda của mình và môi trường tương ứng mà tôi muốn sử dụng. Theo mặc định, xlwings addin install 3 sẽ phát hiện một môi trường (hầu hết là môi trường mà bạn đã cài đặt thư viện này), nhưng nếu không, bạn sẽ phải cung cấp đường dẫn đến bản phân phối anaconda của mình và tên môi trường theo cách thủ côngĐể tìm vị trí phân phối anaconda của bạn, bạn có thể mở dấu nhắc anaconda từ Menu Bắt đầu của Windows và trong dấu nhắc đó, trước tiên hãy kích hoạt môi trường mà bạn đã cài đặt xlwings addin install 3bằng cách chạy lệnhconda activate your_env_name và sau đó chạy where python Điều này có thể mang lại một số kết quả nhưng bạn cần tập trung vào kết quả đầu tiên; Đường dẫn ở đây là xlwings 0.17.0[Errno 2] No such file or directory: 'C:\\Users\\nayak\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'0, vì vậy trong hộp Đường dẫn Conda đi vào xlwings 0.17.0[Errno 2] No such file or directory: 'C:\\Users\\nayak\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'1và trong hộp Conda Env đi vào xlwings 0.17.0[Errno 2] No such file or directory: 'C:\\Users\\nayak\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'2. Điều này sẽ giúp macro gọi hàm python hiểu nó nên sử dụng môi trường nào để thực thi mã python trong. Nếu bạn không sử dụng phân phối anaconda để quản lý môi trường của mình, bạn có thể thực hiện bài tập tương đương với môi trường python của mình, nơi bạn cung cấp đường dẫn đến trình thông dịch và đường dẫn đến python thay vì thực hiện trong conda Tiếp theo, bạn cần bật chức năng do người dùng xác định (UDF) cho xlwings addin install 3 trong giao diện Excel. Sau khi mở Excel, hãy điều hướng đến hộp Phần bổ trợ bằng cách sử dụng tổ hợp phím Alt + L + H, sau đó bạn sẽ thấy một màn hình có nhiều hộp kiểm hỏi bạn cần bật phần bổ trợ nào cho sổ làm việc này. Nhấp vào ô đối với xlwings addin install 3 và nhấn OKMột bước cuối cùng cần được thực hiện sau đó là cấp quyền truy cập cho tất cả các macro muốn sử dụng plugin của bên thứ ba như xlwings. Bạn có thể làm điều này bằng cách điều hướng đến Tệp > Tùy chọn > Cài đặt Trung tâm Tin cậy > Cài đặt Macro và trong cài đặt macro, chọn Bật tất cả Macro và bên dưới mục đó trong Cài đặt Macro dành cho Nhà phát triển, chọn Truy cập tin cậy vào mô hình Đối tượng Dự án VBA Với điều này, chúng tôi đã sẵn sàng một lần nữa chuyển sang khía cạnh trăn của mọi thứ Tạo một dự án Bạn có thể nhanh chóng bắt đầu với một dự án bằng cách chạy lệnh sau từ dấu nhắc cmd hoặc terminal hoặc shell xlwings quickstart project_name Thao tác này sẽ tạo một dự án với project_name làm tên thư mục và theo mặc định, bạn sẽ nhận được hai tệp trong thư mục này
Những gì tôi đã làm là tôi đã tạo một dự án và sao chép nội dung của tệp excel có thông tin về các lượt chia sẻ mà tôi đã đề cập ở trên vào tệp xlsm và đổi tên trang tính đó theo ý thích của tôi Logic phụ trợ python Bây giờ là phần cốt lõi của mã mà bạn cần để tự động hóa dự án của mình. Trong đó, bạn có thể truy cập bất kỳ ô nào từ bất kỳ trang tính nào từ sổ làm việc `xlsm` ở trên Bạn có thể viết bất kỳ hàm tùy chỉnh nào như trong bất kỳ tập lệnh python nào khác và sử dụng chúng tại đây. Tôi đã viết mã của mình bên trong chức năng chính mà tôi sẽ sử dụng để cập nhật giá đóng cửa hàng ngày. Tôi đã đưa ra mã dưới đây theo từng đoạn cho mục đích hiểu. Bạn có thể xem mã hoàn chỉnh cùng một lúc tại đây import xlwings as xw Vì tôi đang gọi từ bên trong sổ làm việc, tôi có thể sử dụng cú pháp trên và lấy đối tượng sổ làm việc. Nếu bạn muốn tham chiếu đến một số sổ làm việc khác, bạn có thể làm wb = xw.book(file_path) Ở đây file_path đề cập đến đường dẫn mà bạn đã lưu trữ tệp excel của mình. Sau đó, để truy cập bất kỳ trang tính nào, về cơ bản, bạn có thể sử dụng chỉ mục hoặc tên của trang tính và để truy cập các giá trị từ một phạm vi trong trang tính, bạn có thể xâu chuỗi lệnh phạm vi trên đầu trang đó # Refer by index Khi bạn nhận được mã ISIN của một cổ phiếu và tên của nó, nsepy có thể giúp bạn tìm nạp bhavcopy(bảng giá) của tất cả các cổ phiếu được liệt kê trên NSE và bạn có thể lọc giá đóng cửa cho tập lệnh đó vào bất kỳ ngày NSE hợp lệ nào. nsepy là một thư viện được duy trì bởi Swapnil Jariwala mà bạn có thể tham khảo tài liệu tại đây xlwings addin install 0Nếu bạn có nhiều tập lệnh, bạn có thể lặp lại mã này để lấy giá đóng cửa cho tất cả các tập lệnh của mình và ghi chúng vào trang tính Excel theo ý muốn của bạn Đây chỉ là một đoạn mã thực tế có thể tìm thấy trên repo github của tôi cho dự án này tại đây Logic FrontEnd của Excel Bây giờ chúng ta đã xác định logic python, chúng ta cần kết nối nó với một macro và gán nó cho một nút trong trang tính chính của chúng ta. Để làm điều đó, trước tiên bạn cần chèn một nút. Bạn có thể vào Nhà phát triển > Chèn > Nút và sau đó kéo một nút xuống trang tính Sau đó, bạn có thể nhấn Alt + F11 để hiển thị giao diện VBA để xác định macro. Bây giờ bạn có thể định nghĩa một phụ như sau trong cùng trang tính mà bạn đã đặt nút xlwings addin install 1Mã này trong macro sẽ làm những việc sau
Mã này có thể được điều chỉnh theo nhiều cách khác nhau; xlwings addin install 2và điều này sẽ vẫn hoạt động tốt. Bạn có thể thực hiện một số kiểm tra trong VBA, một số trong python và để hai giao diện giao tiếp tự do khi cần, điều đó thật tuyệt vời phải không Cuối cùng, đối với nút mà bạn đã tạo, bạn có thể gán macro này bằng cách nhấp chuột phải vào nút và chuyển sang tùy chọn gán macro, cuối cùng chọn macro này xlwings 0.17.0[Errno 2] No such file or directory: 'C:\\Users\\nayak\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'9và nhấp vào OK Bây giờ, bất cứ khi nào bạn nhấp vào nút (mà tôi đã đặt tên là Đóng cập nhật), các phép tính sẽ chạy trong môi trường conda xlwings 0.17.0[Errno 2] No such file or directory: 'C:\\Users\\nayak\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'2và kết quả đầu ra sẽ được cập nhật trong bảng excel ở cột C. Bằng cách này, tôi không phải tra cứu thủ công giá đóng cửa của từng cổ phiếu trên web rồi điền vào Excel, tôi có thể hoàn thành công việc chỉ bằng một nút bấm Bạn cũng có thể định nghĩa các hàm trong python, hàm này có thể được gọi giống như các công thức trong Excel và thực hiện nhiều thao tác khác nhưng tôi sẽ đề cập đến điều đó trong một bài viết sau… Phần kết luận Hy vọng bài viết này đã giúp bạn hiểu cách bạn có thể chắp cánh cho quy trình công việc excel của mình với sự trợ giúp của python. ) Bạn có thể tự động hóa Excel bằng Python không?Nhìn chung, Tự động hóa Python Excel là một quy trình đổi mới mà bạn có thể sử dụng để tạo báo cáo trực quan trên Python giống như cách bạn làm trên Excel một cách liền mạch. Organizations can leverage Python Excel Automation to leverage their business tasks according to their needs.
Python có thể thay thế Excel VBA không?Không giống như ngôn ngữ VBA được sử dụng trong Excel, phân tích dữ liệu bằng Python sạch hơn và cung cấp khả năng kiểm soát phiên bản tốt hơn . Tốt hơn nữa là tính nhất quán và chính xác của Python trong việc thực thi mã. Những người dùng khác có thể sao chép mã gốc và vẫn trải nghiệm quá trình thực thi trơn tru ở cùng cấp độ với mã gốc.
Tôi có thể sử dụng mã Python trong Excel không?Nói tóm lại, việc thực thi Python qua Excel cung cấp cho những người có đủ kinh nghiệm về ngôn ngữ này một con đường để giao tiếp và trực quan hóa dữ liệu của họ một cách hiệu quả theo cách mà hầu hết mọi người đều có thể nhìn thấy và hiểu được.
Bạn có thể viết macro bằng Python không?Macro chỉ có thể được viết bằng Python . Một macro có thể là một hàm hoặc một lớp. Để một chức năng được công nhận là macro, chức năng đó phải được gắn nhãn chính xác là macro (điều này được thực hiện với trình trang trí macro đặc biệt. |