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

时间:2016-12-01 14:49:38

标签: 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);
}

方法2.这只是没有打开任何不确定原因

System.Diagnostics.Process.Start(@"C:\Users\username\Documents\newTest.xlsx");

2 个答案:

答案 0 :(得分:4)

通常,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);

答案 1 :(得分:0)

  1. 尝试以管理员身份运行
  2. 检查异常,start方法也应该返回bool,检查以确保它是真的。
  3. 确保您的xlsx文件与Excel相关联(在命令提示符处轻松检查,输入您的文件名并点击输入...如果excel打开则您很好)
  4. 检查系统错误日志。