繁体   English   中英

如何获取xls文件的目录C#

[英]How to get directory of an xls file C#

我需要制作一个程序来读取 excel 的列。 但是为此,我需要获取此 excel 的路径(目录)。 阻止我这样做的原因是我不想固定本地目录,因为如果有人在另一台机器上下载文件,他们将需要更改路径。

在此处输入图像描述

你有两个选择:

  1. 如果您不想将您的 excel 文件存储在应用程序的目录中,您可以简单地将内容放在 C: 分区的根目录中。 每个 Windows 设备都会有 C: 分区。 正如用户 Lee Taylor 所指出的,事实证明你可以拥有一个没有 C: 分区的 windows 设备,虽然不常见
  2. 如果您不介意将您的 excel 文件存储在应用程序的目录中,您可以通过Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);获取应用程序目录的相对路径。

还有其他方法,但我相信这些是最简单和最容易做到的。

您问如何获取 xls 文件 C# 的目录

正如其他人指出的那样,该文件需要位于已知位置,一种方法是将 Excel 文件添加到您的解决方案中并将其标记为Content ,指定应将其复制到输出目录。 下图显示了如何设置这些属性。

当您为其他用户部署应用程序时,您似乎也在寻找一种可靠的方法来实现这一点。 为此,您将需要一种策略来制作 .msi 或 .msix,以便将此文件放置在需要的位置。 但是要回答您的基本问题,您可以通过这种方式获得在这种情况下的路径。 此代码将获取路径并打开 Excel 文件。

// Get the path and open the Excel file
static void Main(string[] args)
{
    var path =  
        Path.Combine(
            Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), 
            "Microsoft Excel Worksheet.xlsx");

    Console.WriteLine(path);
    System.Diagnostics.Process.Start("explorer.exe", path);
}

在此处输入图像描述

我应该提到执行目录中的文件可以读取但不能写入(没有提升的权限)。 如果文件用户数据,请参考使用环境变量的答案:

var appdata = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)

如果您只需要动态获取同一项目目录中文件的路径,那么以下代码对我有用 -

string filePath = Directory.GetParent(Environment.CurrentDirectory).Parent.FullName + "\\excel\\Prices.xlsx";

其中“\excel”是我项目中的文件夹,“\Prices.xlsx”是项目中的文件

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM