2016-12-01 10 views
2

ボタンをクリックしてExcelファイルを開こうとしています。何らかの理由でそれが機能していない。私はいくつかのことを試しました。なぜ彼らは働いていないすべてのアイデア?Process.Startを使用してC#でExcelファイルを開く

方法1試しました。これは、ファイルマネージャを開きますが、適切なファイルを開きません。

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

背景に潜んでいる任意のExcelのプロセスがありますか? – stuartd

+1

私のプロジェクトは優れたアドインなので、バックグラウンドで開いています。これは問題ですか? –

+0

ああ、そのシナリオでは分かりません。私がExcelの自動化に使用した場合、応答しないか開いていない非アクティブなプロセスで終了します。しかし、これがアドインの場合、Excelオブジェクトモデルにアクセスしてスプレッドシートを開くことはできませんか? – stuartd

答えて

3

通常、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); 
0
  1. は、管理者
  2. として実行してみてください理由はただわからない何かを開けませんでしたこれは間違いなく、ファイルへの適切なパスを使用していると、ファイルは方法2

    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); 
    } 
    

    存在しません

  3. 例外をチェックし、startメソッドもboolを返す必要があります。それが真であることを確認してください。
  4. xlsxファイルがExcelに関連付けられていることを確認してください(これはコマンドプロンプトで簡単に確認できます。ファイル名を入力してEnterキーを押してください)。
  5. システムエラーログを確認してください。
関連する問題