Bạn có thể chạy macro excel trong python không?

> Tôi chỉ muốn tạo macro tự động bằng python. Tôi googled và tìm thấy
> win32com là một gói được sử dụng để làm điều đó, nhưng nó dành cho windows. Tôi đang
> đang sử dụng Linux và gói pyexcelerator để viết trong excel, có
> khả năng nào để chúng tôi có thể tự động hóa một MACRO bằng python không, có được không
> specific package kind of stuff used for it.
>

Hoàn toàn phụ thuộc vào ý của bạn khi "tự động hóa MACRO bằng python".
Dưới đây là một số cách hiểu có thể.
[1] Bạn muốn tạo lại hiệu ứng của một chuỗi thao tác trong
ứng dụng Excel trên sổ làm việc Excel hoặc bộ sổ làm việc Excel. Các
gói xlrd, xlwt và xlutils chứa nhiều cách để thực hiện việc này,
tùy thuộc vào những thao tác đó là gì.

[2] Bạn muốn chạy một số mã VBA có sẵn trong sổ làm việc Excel
từ python. Bạn sẽ cần sử dụng COM qua win32com.

[3] Bạn muốn gọi trình thông dịch python từ bên trong Excel,
có thể để thực hiện chuỗi thao tác từ [1]. Có thể -
có một ví dụ tại
http. //Blog. gobansaor. com/2010/02/07/xlite-beta-updated-adds-python-as-an-excel-scripting-language/

Cái nào trong số này nghe gần nhất với những gì bạn muốn làm?


> Nếu không thể tự động hóa macro, có cách nào để tạo hộp thả xuống
> trong excel không. Nếu tôi có thể làm điều này, tôi có thể khiến người xem
> excel của tôi cảm thấy như thể tôi đã thêm một macro.
>

Có nhiều cách để đặt hộp thả xuống trên trang tính Excel,
thông qua Xác thực dữ liệu, Hộp tổ hợp biểu mẫu MS, Hộp tổ hợp Activex.
thích hợp nhất tùy thuộc vào việc bạn muốn hộp thả xuống thực hiện.

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

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ấm

Do đó, 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 số thư viện python như
xlwings addin install
5 có khả năng thực hiện

Vấ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ậy

Và đ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

Ảnh của Vinayak

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

Ảnh của Vinayak

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 ở đây nếu bạn muốn cài đặt một môi trường ảo với pip hoặc xem ở đây 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

Hình ảnh của Vinayak

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 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ệnh

xlwings addin install
1

và sau đó chạy

xlwings addin install
2

Đ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;

Ảnh của Vinayak

Đườ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 hộp đối với
xlwings addin install
3 và nhấn OK

Mộ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

Hình ảnh của Vinayak

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 addin install
8

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

  • xlwings 0.17.0[Errno 2] No such file or directory: 'C:\\Users\\nayak\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'
    5. Đây là tệp python chứa mã mà macro của bạn có thể gọi để sửa đổi trang tính
  • xlwings 0.17.0[Errno 2] No such file or directory: 'C:\\Users\\nayak\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'
    6. Đây là tệp excel được bật macro, trống và chứa hai trang tính là tệp
    xlwings 0.17.0[Errno 2] No such file or directory: 'C:\\Users\\nayak\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'
    7 và tệp
    xlwings 0.17.0[Errno 2] No such file or directory: 'C:\\Users\\nayak\\AppData\\Roaming\\Microsoft\\Excel\\XLSTART\\xlwings.xlam'
    8. Bạn có thể tạo các trang tính bổ sung trong sổ làm việc này và thêm bất kỳ số lượng macro nào vào sổ làm việc đó. Logic của cuộc gọi lại phải được ghi bên trong tệp python được tạo ở trên

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

xlwings addin install
3

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

xlwings addin install
4

Ở đâ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 đó

xlwings addin install
5

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
0

Nế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
1

Mã này trong macro sẽ làm những việc sau

  • Tìm file có tên “Python_File_Name_Here”
  • Nhập các mô-đun trong tệp này
  • Gọi chức năng chính trong tệp python được chỉ định

Mã này có thể được điều chỉnh theo nhiều cách khác nhau;

xlwings addin install
2

và đ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 và 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à Cập nhật Đóng], các tính toán 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'
2 và 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ể chạy macro Excel thông qua Python không?

Bạn có thể viết macro Excel bằng python để làm bất cứ điều gì mà trước đây bạn đã sử dụng VBA cho . Macro hoạt động theo cách rất giống với các hàm trang tính. Để đăng ký một hàm dưới dạng macro, bạn sử dụng trình trang trí xl_macro. Macro rất hữu ích vì chúng có thể được gọi khi các phần tử GUI [nút, hộp kiểm, v.v. ]

Làm cách nào để sử dụng Excel VBA trong Python?

VBA. Gọi Python từ Excel .
Mở trình soạn thảo VBA bằng Alt-F11
Sau đó vào Tệp > Nhập tệp. và nhập xlwings. tập tin cơ sở. Nó có thể được tìm thấy trong thư mục cài đặt xlwings của bạn

Python có thể chạy mã Excel không?

PyXLL là một phần bổ trợ Excel cho phép bạn chạy Python trong Excel . Sử dụng Microsoft Excel làm giao diện người dùng thân thiện với mã Python của bạn. Không có VBA, chỉ có Python.

Bạn có thể tự động hóa Excel bằng Python không?

Để làm việc trên trang tính Excel này, chúng tôi sẽ sử dụng thư viện openpyxl . Tạo một thư mục trong thư mục của bạn, đặt tên cho nó và cài đặt gói openpyxl bằng cách thực hiện lệnh sau trong thiết bị đầu cuối của bạn. Bây giờ chúng tôi có thể nhập gói này để làm việc trên bảng tính của mình. Trước đó, hãy thêm bảng tính vào thư mục dự án của bạn.

Chủ Đề