Как запустить Interop.Excel.Приложение с аргументами команды?

#c# #office-interop #office-addins #excel-interop #excel-addins

#c# #office-interop #office-дополнения #excel-interop #excel-дополнения

Вопрос:

Мне нужно передать аргументы в новый экземпляр Excel, а затем прочитать аргументы из нового экземпляра через Addin.

Я хочу использовать эту конструкцию для открытия нового приложения Excel:

 new Microsoft.Office.Interop.Excel.Application()
  

Есть ли способ передать аргументы командной строки, например, как:

 string argument = "TestArgument";
new Microsoft.Office.Interop.Excel.Application(argument);
  

Спасибо!

Ответ №1:

Если вам нужно это сделать (я рекомендую запускать из Interop как можно быстрее), вы можете запустить приложение Excel, а затем получить ссылку на него.

 // start Excel with your command line arguments
var pathToExcel = @"C:Program FilesMicrosoft OfficerootOffice16excel.exe";
var commandLineArguments = "/whatever";
System.Diagnostics.Process.Start(pathToExcel, commandLineArguments);

// get a reference to it
Microsoft.Office.Interop.Excel.Application app = (Microsoft.Office.Interop.Excel.Application)
    System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application");
  

Взаимодействие настолько злое, что я чувствую себя почти неэтичным, отвечая на это. Это открывает ворота к бесконечным страданиям. Если это вообще возможно, я рекомендую использовать что-то вроде EPPlus для взаимодействия с файлами Excel.