2017-01-31 173 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

感谢提示的人。 –