[英]Open VBA file excel with parameters by Excel Interop
我有一个程序执行 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 互操作来做到这一点?
我必须尝试做
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
我该怎么做?
你是在正确的途径 - Workbooks.Open方法打开一个工作簿。 很可能您必须在本地复制文件然后打开它。
如果您需要获取命令行 arguments,您可以使用Environment.GetCommandLineArgs方法返回一个字符串数组,其中包含当前进程的命令行 arguments。
Application.Workbooks.Open(@"C:\Test\YourWorkbook.xlsx");
有关详细信息,请参阅如何:以编程方式打开工作簿。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.