簡體   English   中英

使用MS Visual Studio 2010在C#中讀取Excel文件:如何給出相對路徑?

[英]Reading Excel File in C# using MS Visual Studio 2010: How to give Relative Path?

我正在通過以下方式讀取Excel文件:

string path = @"C:\Users\myUserName\inputfile.xlsx";
Excel.Application app = new Application();
Excel.Workbook workbook = app.Workbooks.Open(path, 0, true, 5, "", "", true, Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);

我想知道是否有任何方法可以提供相對路徑,而不是硬編碼的絕對路徑。 我要記住的是將inputfile.xlsx放在同一目錄中並執行類似的操作...

string path = @"inputfile.xlsx";  

但是,它給出了“未處理COMException”,“找不到inputfile.xlsx”

使用以下代碼獲取.exe位置:‫‪

string localPath = System.IO.Path.GetDirectoryName
‫‪(System.Reflection.Assembly.GetExecutingAssembly().Location‬‬)

如有疑問,可以使用Directory.GetCurrentDirectory()來了解當前目錄是什么。

如果Excel找不到該文件,則很有可能會誤解當前目錄是什么。 構造相對於GetCurrentDirectory()返回的目錄的路徑。

僅供參考,在調試器和MS Test單元測試中獨立運行該應用程序將全部設置不同的當前目錄。 原因是在每種情況下,可執行文件都是從不同的目錄啟動的。

確保excel文件與可執行文件位於同一文件夾中,或者相對於包含可執行文件的目錄,確保相對路徑正確。

如果項目中包含excel文件,也可以在解決方案資源管理器中右鍵單擊它,單擊屬性,然后將“復制到輸出目錄”設置為“始終復制”。 這將導致文件放置在項目輸出目錄中。 相對路徑將僅包含文件名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM