使用Process.Start在C#中打开Excel文件
我正在尝试使用单击按钮打开excel文件。由于某种原因,它不起作用。我试过几种方法。你知道他们为什么不工作吗 方法1我试过了。这会打开文件管理器,但不会打开正确的文件。它确实使用了文件的正确路径,并且文件确实存在使用Process.Start在C#中打开Excel文件,c#,excel,winforms,C#,Excel,Winforms,我正在尝试使用单击按钮打开excel文件。由于某种原因,它不起作用。我试过几种方法。你知道他们为什么不工作吗 方法1我试过了。这会打开文件管理器,但不会打开正确的文件。它确实使用了文件的正确路径,并且文件确实存在 private string fileCopy; public RepairResultsControl() { InitializeComponent(); } public void Show(PSRepair.AnalysisResults analysis, str
private string fileCopy;
public RepairResultsControl()
{
InitializeComponent();
}
public void Show(PSRepair.AnalysisResults analysis, string pathNameCopy)
{
fileCopy = pathNameCopy;
Show();
}
private void btnGoToFile_Click(object sender, EventArgs e)
{
Process.Start("explorer.exe", "/select,"+ fileCopy);
}
方法2。这只是没有打开任何东西不知道为什么
System.Diagnostics.Process.Start(@"C:\Users\username\Documents\newTest.xlsx");
通常,
Process.Start(@“C:\Users\username\Documents\newTest.xlsx”)代码>将在Excel中打开您的文档
但是,您在评论中说,您是从后台运行的Excel加载项执行此操作的。解决方案需要考虑到这一点(代码示例假定您有一个VSTO插件,否则需要进行相应调整):
是否有任何Excel进程潜伏在后台?我的项目是一个Excel加载项,因此它在后台打开。这是一个问题吗?啊,在那种情况下我不知道。当我习惯于自动化Excel时,我会以不活跃的流程结束,这些流程不会响应或打开。但是,如果这是一个加载项,您是否有权访问Excel对象模型以通过它打开电子表格?。。您的第一个代码示例将打开选定文件的资源管理器,这就是explorer.exe/select
所做的。但是,第二个应该在Excel中打开电子表格。我不确定为什么不能。我想不出有什么可能是错误的。我正在尝试直接打开xlsx
文件,获取此异常:Win32Exception:指定的可执行文件不是此操作系统平台的有效应用程序。这可能取决于UseShellExecute
属性的值。确保将其设置为true。我刚才说的是进程。启动
。是的,在属性设置为true的情况下传入一个ProcessStartInfo
。若它仍然失败,你们可能需要修理办公室。
// make the running Excel instance visible
Globals.ThisAddIn.Application.Visible = true;
// open the workbook using Excel interop
Globals.ThisAddIn.Application.Workbooks.Open(fileName);