我想要做的是获取我的excel文件的文件路径。但我无法这样做。
文件位于Document / Visual Studio 2013 / Project / ProjectName / a.xlsx
中string path = Path.Combine(HttpContext.Current.Server.MapPath("~/"),"a.xlsx");
string SheetName="Sheet1";
这样做是错误的还是正确的?
答案 0 :(得分:1)
opengrads.exe
在网络环境之外无效。
如果您的项目在控制台或Windows程序中运行,则它无法与HttpContext.Current
一起使用。 HttpContext.Current
用于将Web路径转换为文件系统路径。 MapPath
是用于指向Web应用程序的根Web路径的.Net约定。
您应该明确说明如何解决包含文件的文件夹的要求。
也许你应该把它放在一些配置文件中(通过示例使用项目的设置属性选项卡)并从那里检索它。
编辑:
因此,根据您对此问题的评论,您似乎必须在执行文件夹中搜索xl文件。
根据您的应用程序使用情况,有多种方法可以实现此目的。
例如,请检查this question。
答案 1 :(得分:1)
根据我的说法,这是更好的答案。
最好保存在
C:\Users\AJ1110\Documents\Visual Studio 2013\Projects\Proj\Proj
并在
Program.cs的
string pathfile = @"..\..\a.xlsx";
string sheetName = "Whatever_SheetName_IS!!!";
这可能会解决您的问题。
答案 2 :(得分:0)
由于您的项目不是Web项目,我希望您使用某种输出,其中构建过程会生成可执行文件,某些程序集等。您可以将Excel的构建操作作为内容(更多详细信息here )并使用此基本路径来检索它:
System.Reflection.Assembly.GetExecutingAssembly().Location
重要的是要考虑与可执行文件相关的术语(或者更精确地执行程序集),因为您的输出必须在开发环境之外运行,并且您的Excel必须仍然可以访问。
此外,获取确切的执行程序集可能是tricky in some scenarios。