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