Открыть файл VBA Excel с параметрами через Excel Interop - PullRequest
0 голосов
/ 18 июня 2020

У меня есть программа, которая выполняет файл VBA excel с такими параметрами, как

ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = true;

object _ExcelPathLocation = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\excel.exe", "Path", null);

 if (sugbdika.Equals("פולס"))
            {
                startInfo.FileName = FileName;
                startInfo.Arguments = Arguments;
            }
            else
            {
                startInfo.FileName = $"{_ExcelPathLocationStr}EXCEL.EXE ";
                startInfo.Arguments = "/x " + FileName + " " + Arguments;
            }
 Process p = Process.Start(startInfo);

Командная строка выглядит так:

startInfo.FileName => C:\\Program Files (x86)\\Microsoft Office\\Root\\Office16\\EXCEL.EXE startInfo.Arguments => /x \\\\FILES\\~Departments\\tadWeb_reports\\Milenium.xltm /t/LE-15576/A/4/3.0/3.0 На самом деле я хочу открыть файл \\FILES\~Departments\tadWeb_reports\Milenium.xltm с этой строкой параметров, например /t/LE-15576/A/4/3.0/3.0

Как я могу сделать это с помощью Excel Interop?

Я должен попробовать сделать

object oMissing = System.Reflection.Missing.Value;

            Microsoft.Office.Interop.Excel.Application oExcel = new Microsoft.Office.Interop.Excel.Application();

            oExcel.Visible = true;

            Microsoft.Office.Interop.Excel.Workbooks oBooks = oExcel.Workbooks;
            Microsoft.Office.Interop.Excel._Workbook oBook = null;

            oBook = oBooks.Open($"{startInfo.Arguments}", oMissing, oMissing,
                oMissing, oMissing, oMissing, oMissing, oMissing, oMissing,
                oMissing, oMissing, oMissing, oMissing, oMissing, oMissing);

Чтобы использовать open на следующей строке: \\\\FILES\\~Departments\\tadWeb_reports\\Milenium.xltm /t/LE-15576/A/4/3.0/3.0

Как это сделать?

1 Ответ

0 голосов
/ 18 июня 2020

Вы находитесь на правильном пути - метод Workbooks.Open открывает книгу. Скорее всего, вам придется скопировать файл локально, а затем открыть его.

Если вам нужно получить аргументы командной строки, вы можете использовать метод Environment.GetCommandLineArgs , который возвращает массив строк, содержащий аргументы командной строки для текущего процесса.

Application.Workbooks.Open(@"C:\Test\YourWorkbook.xlsx");

См. Как: программно открывать книги для получения дополнительной информации.

...