【发布时间】: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