2017-11-13 5 views
-4

私は、次のコードをしている:Excelが既に実行されている場合、ファイルは、そのインスタンスにアプリケーションの新しいインスタンスでファイルを強制的に開くことはできますか?

var p = Process.Start("file.xlsx"); 
p.WaitForExit(); 

開かれ、pnullになりますので、私が出るのを待つことはできません。アプリケーションの新しいインスタンスでファイルを開くにはどうすればよいですか?

+0

あなたがオープンしたエクセルファイルを終了するか、それを保存するまで、等...あなたは何を期待していますか? – MethodMan

+0

私はあなたができることを確信していません - 手動で 'excel.exe'を試してみても、新しいインスタンス全体を回転させるのではなく、実行中のインスタンスを検出して「作業する」ように思えます。おそらく、いくつかのコマンドラインパラメーターが渡される可能性があります。 –

+3

... [実際には](https://support.office.com/en-us/article/Command-line-switches-for-Microsoft- Office製品 - 079164CD-4EF5-4178-B235-441737DEB3A6#ID0EAABAAA = Excel) - '/ x'を参照してください。 –

答えて

-1

これを試してみてください:

"c:\Program Files (x86)\Microsoft Office\Office\Office12\excel.exe" /x "path_to_your_file.xlsx"

C#

var psi = new ProcessStartInfo(); 
psi.FileName = @"C:\Program Files (x86)\Microsoft Office\Office12\Excel.exe"; 
psi.Arguments = @"/x ""C:\Users\Michael\Desktop\abc.xlsx"; 
var p = new Process(); 
p.StartInfo = psi; 
p.Start(); 
p.WaitForExit(); 

サブフォルダ/Office12は、使用しているOfficeのバージョンに依存します。

関連する問題