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

解決策の 1 つは、相対パスを使用しないことです。パスを明示的に設定するコードを次に示します。

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