У нас есть макрос, который занимает около 20 минут. У нас есть winform C#, к которому у нашего пользователя есть доступ - он содержит кнопку «Запустить макрос». Мне бы хотелось, чтобы пользователь нажал кнопку, а затем фактически закрыл форму, а затем через 20 минут просмотрел вывод макроса в предопределенной директории.20-минутный макрос Excel для запуска из C# Winform
Это просто случай создания делегата и разрешение делегату запустить макрос или это выше не тривиальный вопрос?
Пара идей, которые могли бы быть жизнеспособными:
- Просто скрыть форму после того, как пользователь нажимает на кнопку? Недостатком является то, что макрос по-прежнему будет связывать процессор пользователя в экземпляре Excel?
- Может ли winForm на ПК UserX запускать программу для запуска на нашем сервере «Excel»? Это звучит далеко, но, может быть, кто-то может помочь.
- Как и вышеприведенный, возможно, на сервере Excel я мог создать небольшое консольное приложение для демон, которое планируется запустить каждые 2 секунды и проверить таблицу на общем db, чтобы увидеть, нужно ли запускать какие-либо макросы. Пользовательский winform может обновить эту контрольную таблицу, а затем демон будет работать.
У Вас есть опыт работы на всех с автоматизацией Excel из .net? Будет ли уже открыта рабочая книга с макросом? Я полагаю, вы могли бы изучить использование 'Application.Run' для достижения этого. –
Нет, вы не можете открыть приложение C#, поскольку оно будет иметь дескриптор процесса Excel. Вы хотите, чтобы я углубился в подробности, просто проверьте последние пару моих вопросов. VSTO, Excel. Дайте мне знать, хотите ли вы, чтобы я исследовал вам ответ? –
+ 1 @whytheq: Хороший вопрос :) –