【问题标题】:C# filepath to Excel file in solution or bin/debug folder? [closed]解决方案或 bin/debug 文件夹中 Excel 文件的 C# 文件路径? [关闭]
【发布时间】:2017-12-15 22:36:58
【问题描述】:

我试图访问一个 Excel 文件,但没有在我的电脑上指定整个绝对路径。

代替这个:

Excel.Application app = new Excel.Application();
OpenFileDialog ofd = new OpenFileDialog();
        if (ofd.ShowDialog() == DialogResult.OK)
        {
            Excel.Workbook sheet = app.Workbooks.Open(ofd.FileName);
           //etc
        }
SaveFileDialog sfd = new SaveFileDialog();
sfd.ShowDialog();
string name = sfd.FileName;
sheet.SaveAs(name);

我希望始终动态地使用解决方案中提供的模板。

有什么建议或想法吗?

【问题讨论】:

  • 我不明白你在问什么,你说你不想在你的电脑上使用绝对路径,但你的代码中没有任何地方使用过这样的东西。在您的代码中,您使用OpenFileDialog 来获取文件名的路径。你说你想使用模板?解决方案中提供?你在说什么模板或解决方案?
  • 对不起。我现在正在做的是让用户指定用于插入数据的程序的 excel 模板。我想要的不是使用 OpenFileDialog(),因此程序总是从解决方案中的同一位置加载模板。我知道我可以硬编码文件的位置,但这在其他电脑上不起作用。所以无论程序在哪台电脑上运行,我都想动态获取文件。
  • 应用程序的读/写数据文件应存储在 Environment.SpecialFolder.CommonApplicationData 描述的文件夹中。使用 Environment.GetFolder 方法检索此文件夹。在这里,您为您的应用程序创建一个子文件夹来存储和检索您的文件。
  • var fileName = Path.Combine(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location), @"etiketten.xlsx");成功了
  • 不要将用户数据保存在Assembly.GetEntryAssembly‌​().Location;大多数用户不能在那里写,如果用户卸载或修复应用程序,这个文件夹可以被替换。

标签: c# path openfiledialog


【解决方案1】:

好的,如果你想从应用程序的目录中获取文件,请使用这个,

 Excel.Workbook sheet = app.Workbooks.Open(System.AppDomain.CurrentDomain.BaseDirectory + "ExcelFile.xlsx");

【讨论】:

  • 谢谢,实际上是:Excel.Workbook sheet = app.Workbooks.Open(System.AppDomain.CurrentDomain.BaseDirectory + "ExcelFile.xlsx");没有括号但有效!
  • @JohnDorian 啊,我的错,从 vb.net 应用程序复制粘贴。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-09-30
  • 1970-01-01
  • 2011-04-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多