C# Can';t使用cmd打开excel文件
我是C#编程新手,因此,如果我犯了初学者的错误,我很抱歉。 我正在尝试编写一个应用程序,当用户单击一个按钮时,它会打开OpenFileDialog,他必须选择一个“.xlsx”文件,程序应该在excel中打开这个文件。 这是我的密码:C# Can';t使用cmd打开excel文件,c#,C#,我是C#编程新手,因此,如果我犯了初学者的错误,我很抱歉。 我正在尝试编写一个应用程序,当用户单击一个按钮时,它会打开OpenFileDialog,他必须选择一个“.xlsx”文件,程序应该在excel中打开这个文件。 这是我的密码: OpenFileDialog openfile = new OpenFileDialog(); openfile.Filter = ("Excel files |*.xlsx"); penfile.FilterIndex = 1; String file_name
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,而不打开文件
提前感谢。当然,您应该在关闭对话框后阅读OpenFileDialog选择的文件,而不是在ShowDialog之前
...
if(openfile.ShowDialog() == DialogResult.OK)
{
file_name = openfile.FileName;
....
要补充史蒂夫的答案: 你不需要额外的命令。这也将为您打开任何文件
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);
}
您是否检查了
文件名
的内容是否正确?是否收到错误消息?请在ShowDialog()之后读取openfile.FileName
。。。如果在if()
block.use进程中设置断点,您会注意到文件名为空。请启动并使用“打开”动词。由于某些原因,您希望使用多层打开文件,请找出出现错误的步骤。旁注:Process.Start(文件名)
可能足够了(假设它实际上是xls/xlsx)。这很有效,谢谢。很抱歉犯了这个错误。“任何文件”,只要它有一个默认程序。谢谢你的小费。