使用sheetname获取excel文件的FilePath



我想做的是获取excel文件的文件路径。但我做不到。

文件位于Document/View Studio 2013/Project/ProjectName/a.xlsx 中

string path = Path.Combine(HttpContext.Current.Server.MapPath("~/"),"a.xlsx");
string SheetName="Sheet1";

这是错误的做法还是正确的做法?

根据我的说法,这是更好的答案。

更好地保存在中

C:UsersAJ1110DocumentsVisual Studio 2013ProjectsProjProj 

在中

程序.cs

string pathfile = @"....a.xlsx";
string sheetName = "Whatever_SheetName_IS!!!";

这可能会解决你的问题。

HttpContext.Current在web上下文之外不起作用。

如果您的项目在控制台或windows程序中运行,则无法使用HttpContext.CurrentMapPath用于将web路径转换为文件系统路径。~/是用于指向web应用程序的根web路径的.Net约定。

您应该明确您对如何解析包含文件的文件夹的要求。

也许你应该简单地把它放在一些配置文件中(例如使用项目的设置属性选项卡),然后从那里检索它。

编辑:

因此,从您对这个问题的评论来看,您似乎必须在执行文件夹中查找xl文件。

有很多方法可以实现这一点,具体取决于您的应用程序用例。

举例来说,检查这个问题。

由于您的项目不是Web项目,我希望您有某种类型的Output,其中构建过程会生成一个可执行文件、一些程序集等。您可以将Excel的构建操作作为内容(此处有更多详细信息),并使用此基本路径来检索它:

System.Reflection.Assembly.GetExecutingAssembly().Location

从可执行文件(或者更准确地说是执行程序集)的角度进行思考是很重要的,因为您的输出必须在开发环境之外运行,并且excel必须仍然可以访问。

此外,在某些情况下,获取确切的执行程序集可能很棘手。

相关内容

最新更新