在c#桌面应用程序中打开现有的excel文件

时间:2011-09-16 11:34:55

标签: c# winforms excel desktop-application

当用户按下我的c#桌面应用程序中的链接时,我尝试显示现有的excel文件。我把我的excel文件放到我的项目文件夹中。然而,当我将项目设置到不同的计算机时,excel文件的路径将会改变。打开excel文件时,我找不到与C:\ example.xlsx这样的直接路径无关的方法。我怎么解决这个问题?谢谢你..

3 个答案:

答案 0 :(得分:1)

我建议使用System.IO.Path.GetTempFileName()并将Excel文件复制到临时文件中。

或者

使用Application.StartupPath属性。

答案 1 :(得分:0)

如果这些文件存储在您的应用程序文件夹中,请尝试使用:

string excelFilePath = Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "excelfiles\\myexcelfile.xlsx");

否则,如果您有预定义的文件集,则需要进行一些存储文件的设置。

如果您只需要允许用户指定存储文件的位置 - 请使用OpenFileDialog

答案 2 :(得分:0)

两件事:

如果您不介意MS GUI实现,请尝试使用OpenFileDialog让您的用户(如果适用)选择正确的文件:

var openFileDialog1 = new OpenFileDialog();
openFileDialog1.InitialDirectory = "c:\\";
openFileDialog1.Filter = "xlsx files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
openFileDialog1.FilterIndex = 1;
openFileDialog1.RestoreDirectory = true;

编辑: 然后使用openFileDialog1.Filename获取文件名。

OR

如果文件始终位于同一个关系目录中,请使用相对路径名:

StreamReader reader = new StreamReader("..\\'folder'\\'file'");

我发现这两种方式中的一种始终有效;取决于我是否希望用户选择该文件。

编辑: 获得文件名后,如果需要,请使用Microsoft.Office.Interop.Excel命名空间来控制excel中的文件。

希望这有帮助!