这是我的代码:
Dim sTemplateSharedPath As String = sSharedDrive & ":\Excel Templates\ImportTemplate.xlsx"
Dim objProcess As System.Diagnostics.Process
Try
objProcess = New System.Diagnostics.Process()
objProcess.StartInfo.FileName = sTemplateSharedPath
objProcess.Start()
objProcess.WaitForExit()
Catch
MessageBox.Show("Could not start process " & sTemplateSharedPath, "Error")
End Try
Excel打开我请求的文件,但系统在objProcess.WaitForExit()
部分崩溃。我得到的错误如下:
没有任何进程与此对象相关联。
我希望系统打开模板,让用户添加他/她的数据,保存并关闭MS Excel。一旦系统检测到进程不再运行,请指向sTemplateSharedPath
并将所述更改导入系统。如果在用户编辑Excel文档时应用程序的UI没有响应,那就没问题了。
在开始此过程之前,我已将以下内容添加到上面的代码中:
objProcess.StartInfo.UseShellExecute = false
但是我得到了这个错误:
指定的可执行文件不是此os平台的有效应用程序
我希望有人能够帮助我解决这个问题。
提前致谢。
答案 0 :(得分:0)
您是否尝试首先以文件作为参数打开Excel实例?
Dim sSharedDrive = "C"
Dim sTemplateSharedPath As String = "excel.exe"
Dim FileParam As String = ControlChars.Quote + sSharedDrive + ":\test new\test.xlsx" + ControlChars.Quote
Dim objProcess As System.Diagnostics.Process
Try
objProcess = New System.Diagnostics.Process()
objProcess.StartInfo.FileName = sTemplateSharedPath
objProcess.StartInfo.Arguments = FileParam
objProcess.Start()
objProcess.WaitForExit()
Catch
Console.WriteLine("Could not start process " & sTemplateSharedPath, "Error")
Console.ReadLine()
End Try
我不知道你的操作系统中是否定义了.xlsx文件类型。你能手动打开.xlsx吗?