#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.