Не удалось открыть файл Excel с помощью Process.Start () в .Net4.0 - PullRequest
3 голосов
/ 20 марта 2012

Недавно старый проект .Net 1.1 мигрирует на .Net4.0. В проекте используется следующий метод для открытия файла Excel:

Process process = new Process();

try
{
  process.StartInfo.FileName = marco_file;
  process.Start();
}
catch(Exception)
{
}
finally
{
  process.Close();
}

И marco_file - это путь к файлу Excel с макросами, например, "C: \ project \ test.xls" Макрос в нем запустится сразу после открытия файла excel.

В .Net1.1 и коды, и макрос работают хорошо. В .Net4 коды запускаются без исключений. Но макрос не сработал.

Почему макрос в файле Excel не запустился?

Моя среда - Win7 64bit. Офис 2010 64bit. IIS 7.5

Спасибо

Когда я переключаюсь на следующие коды и запускаю режим отладки

process.StartInfo.FileName = marco_file;
if (process.Start())
{
    Debug.WriteLine("-->start ");
}
else
{
    Debug.WriteLine("-->failed ");
}

В результате он переходит в блок else, что означает, что процесс не запускается.

Кто-нибудь знает почему?

1 Ответ

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

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

Чтобы включить макросы, необходимо перейти по адресу:

File tab on the ribbon => Options
                       => Trust Center
                       => Trust Center Settings...
                       => Macro Settings

Единственный вариантздесь, что позволит макросу запускаться автоматически:

Enable all macros (not recommended; potentially dangerous code can run)

Обратите внимание на предупреждение.

...