2017-07-18 79 views
6

Próbuję znaleźć sposób na zrobienie skryptu Pythona, który znajdzie wszystkie przyciski/pola wyboru w dokumencie programu Excel i losowo oddziałuje z nimi.Interakcja z przyciskami/makrami w programie excel automatycznie

Próbowałem użyć pywinauto, ale nie znajduje rzeczywistych obiektów w dokumencie (prawdopodobnie dlatego, że jest to obiekt vb, a nie zwykły GUI).

Jak można tego dokonać przy użyciu Pythona? A może jest inny sposób na zrobienie tego?

Tutaj jest plik np excel

Dzięki.

+2

Czy możesz udostępnić przykładową tabelę Excel z pewnymi sztucznymi danymi? –

+1

@ VasilyRyabov Oto przykład: https://ufile.io/7rboc – cydan

Odpowiedz

2

Dzięki za próbkę! Obawiam się, że nie ma dobrego sposobu na uzyskanie tekstów przycisku lub pola wyboru za pomocą pywinauto. Chociaż Inspect.exe pokazuje te kontrolki, ale wszystkie są po prostu obrazami! Zobacz the screenshot with Inspect.exe. Tak więc jedynym sposobem na ich zautomatyzowanie jest wyliczanie według indeksu. Oczywiście musisz użyć pywinauto.Application(backend="uia"). W przypadku losowej interakcji teksty mogą nie mieć znaczenia, ale teksty byłyby bardzo pomocne w ponownym kontrukowaniu sekwencji działań w przypadku awarii/błędu.

Inną możliwością może być użycie win32com.client. Nie wiesz, czy obiekty COM programu Excel mają niezbędne właściwości. Trzeba zbadać osobno.