1

嗨,我在这里遇到了这样的问题。我正在尝试使用相对路径链接到 exe 文件本身同一目录中的 excel 文件。
当我使用

Excel.Workbook wkbook = exapp.Workbooks.Open(@".\test.xlsx");

我把我的exe文件放在f盘。原来,exe 文件更改了 C:\Users\\Documents 文件夹中的 test.xlsx 文件(而且它还以某种方式创建了 test.xlsx 本身)。但是,当我使用 ".\xx.txt" 或 "xx.txt" 时,它运行得非常好。

谁能告诉我该怎么做?谢谢你。

4

3 回答 3

2

要获取相对于当前执行的 exe 的文件路径,可以使用以下命令:

string exeDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
Excel.Workbook wkbook = exapp.Workbooks.Open(System.IO.Path.Combine(exeDir, "test.xlsx"));
于 2013-07-26T00:39:20.443 回答
0

一种解决方案是:不要使用相对路径。这是一些显式设置路径的代码:

var executableFolderPath = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
Excel.Workbook wkbook = exapp.Workbooks.Open(executableFolderPath + @"\test.xlsx");
于 2013-07-26T00:39:32.590 回答
0

创建 的类实例时Excel.Application,文件的默认路径可以存储在其DefaultFilePath属性中;例如,这两行将 xlApp 对象的默认文件路径设置为当前程序集的默认目录。

xlApp = new Excel.Application();
xlApp.DefaultFilePath = Environment.CurrentDirectory;

顺便说一句,您可以设置您选择的每个目录。

于 2019-03-19T08:23:16.403 回答