Как заставить книгу personal.xls открываться при запуске Excel с помощью автоматизации? - PullRequest
2 голосов
/ 07 марта 2012

Я понял, что когда Excel открывается с помощью автоматизации, он по умолчанию не открывает свои элементы автозапуска, например, книгу personal.xls.Это создает проблему для моих пользователей, которые иногда открывают Excel через мое приложение, а затем продолжают использовать его для своей другой работы.

К сожалению, экземпляр Excel, открытый таким образом, не содержит своих личных макросов.Они должны закрыть Excel и снова открыть его из-за пределов моего приложения, чтобы их макросы были доступны.

Есть ли способ заставить Excel автоматически загружать книгу personal.xls при запуске через автоматизацию?Если нет, то как лучше всего открыть этот файл, учитывая, что он не должен быть видимым для пользователя, а оставаться скрытым?

Я не нашел вариантов сделать это при создании объектаи открытие приложения

Excel.Application xlApp = new Excel.Application();

Любой совет или ссылки, которые кто-либо может предоставить, будут очень признательны.Я искал и искал информацию об этом, но никто, кажется, не пытался обойти это.Я использую Excel 2007 и .NET 2.0.

Ответы [ 2 ]

2 голосов
/ 08 марта 2012

Оказывается, что простым поиском и открытием файла personal.xls пользователя (или personal.xlsx для созданных в новых версиях Excel) является ответ.

Excel.Application xlApp = new Excel.Application();
string filename = xlApp.StartupPath + "\\personal.xls";

xlApp.Workbooks.Open(filename, 0, false, 5, Missing.Value, Missing.Value, false,
    Missing.Value, Missing.Value, Missing.Value, false, Missing.Value, false,
    true, false);

Книга personal.xls открывается скрытойв фоновом режиме (при необходимости) и позволяет в полной мере использовать все макросы, прикрепленные к нему.

Как только я узнал, что искать, я нашел в этом посте несколько полезной информации: Проблема Excel XLSTART с C #/.Net

0 голосов
/ 07 марта 2012

Не знаю, ищите ли вы это, но у меня была такая же проблема надстроек в Word. Я решил это, но это может быть не то, что вам нужно.

Сохраните файл с помощью автоматизации, затем запустите его с процессом.

System.Diagnostics.Process.Start("excel.exe", "C:\\somefolder\\somefolder\\personal.xls");

Надеюсь, это сработает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...