2017-01-31 104 views
-3

我是C#編程的新手,所以,如果我犯了一個初學者的錯誤,我很抱歉。 我想寫一個應用程序,當用戶點擊一個按鈕,它會打開OpenFileDialog,他必須選擇一個「.xlsx」文件,程序應該在Excel中打開這個文件。 這裏是我的代碼:無法使用cmd打開Excel文件

OpenFileDialog openfile = new OpenFileDialog(); 
openfile.Filter = ("Excel files |*.xlsx"); 
penfile.FilterIndex = 1; 
String file_name; 
file_name = openfile.FileName; 
if(openfile.ShowDialog() == DialogResult.OK) 
{ 
    string cmd= "/C start excel.exe " + file_name; 
    System.Diagnostics.Process.Start("CMD.exe", cmd); 
} 

問題是,它只是打開的Excel,但沒有文件。

在此先感謝。

+0

你檢查這file_name'的'的內容是正確的? –

+0

你有錯誤信息嗎? – mason

+3

在'ShowDialog()'之後讀取'openfile.FileName' ...如果您在if()塊中設置了斷點,您會注意到空文件名。 – CodeCaster

回答

4

當然,你應該關閉對話框後,讀取打開文件對話框中選擇的文件,ShowDialog的

... 
if(openfile.ShowDialog() == DialogResult.OK) 
{ 
    file_name = openfile.FileName; 
    .... 
+0

這工作,謝謝。對不起,這個錯誤。 –

0

之前不要添加到史蒂夫的回答是:

你不需要額外的命令的東西。這也會爲你打開任何文件。

if(openfile.ShowDialog() == DialogResult.OK) 
{ 
    file_name = openfile.FileName; 
    System.Diagnostics.Process.Start(file_name); 
} 

或者,如果你想確保它的Excel文件:

if(openfile.ShowDialog() == DialogResult.OK) 
{ 
    file_name = openfile.FileName; 

    if (file_name.ToUpper().Contains(".XLS") 
     System.Diagnostics.Process.Start(file_name); 
} 
+0

「任何文件」只要它有一個默認程序。 – GibralterTop

+0

感謝提示的人。 –