使用Process.Start在C#中打开Excel文件

Cra*_*her 3 c# excel winforms

我正在尝试通过单击按钮打开Excel文件。由于某种原因,它不起作用。我已经尝试了几件事。有什么想法为什么他们不起作用?

方法1我尝试过。这将打开文件管理器,但不会打开正确的文件。绝对是使用了正确的文件路径,并且该文件确实存在

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);
}
Run Code Online (Sandbox Code Playgroud)

方法2。这只是没有打开任何东西,不确定为什么

System.Diagnostics.Process.Start(@"C:\Users\username\Documents\newTest.xlsx");
Run Code Online (Sandbox Code Playgroud)

Dir*_*mar 5

通常,Process.Start(@"C:\Users\username\Documents\newTest.xlsx");将在Excel中打开您的文档。

但是,您在注释中说您是通过在后台运行的Excel加载项执行此操作的。解决方案需要考虑到这一点(代码示例假定您具有VSTO加载项,否则需要进行相应调整):

// make the running Excel instance visible
Globals.ThisAddIn.Application.Visible = true;

// open the workbook using Excel interop
Globals.ThisAddIn.Application.Workbooks.Open(fileName);
Run Code Online (Sandbox Code Playgroud)

  • 这可能取决于“UseShellExecute”属性的值。确保它设置为 true。 (3认同)
  • 是的,传入一个 `ProcessStartInfo` 并将该属性设置为 true。如果仍然失败,您可能需要修复 Office。 (2认同)