我的问题是我有一个Windows窗体应用程序,该应用程序位于共享位置上,这在做一些逻辑,最后我需要将数据导出到excel文件中。
但是excel文件应该导出到用户登录的计算机上,而不是在托管应用程序的共享服务器上...
有什么想法吗?
情况示例: 该应用程序的位置在192.168.1.150 \ AppName \ App.exe
我可以访问此共享位置,并且我从那里启动exe文件。 我需要该应用程序才能将excel文件导出到台式机上的计算机....如何?
答案 0 :(得分:3)
如果您认为文件夹“我的文档”是保存Excel文件的好地方,那么此代码将帮助您获取路径:
var folderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
或者如果您要将文件放在桌面上:
var folderPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory)
无论用户使用文件夹“我的文档”(或“桌面”)(C:,D :、网络共享等)还是Windows安装所使用的语言版本,该代码均有效。 / p>
要结合基于时间的文件名:
var fileName = $"your_file_{DateTime.Now:yyMMddHHmmss}.xlsx";
var fullPath = Path.Combine(folderPath, fileName);
如果以前有文件,我经常使用基于时间的文件名来覆盖。 (如果创建相同的秒数,则当然会覆盖)
如果您希望确保文件名唯一,则可以使用Guid
代替DateTime
:
var fileName = $"your_file_{Guid.NewGuid():N}.xlsx";
如果仅在“程序内”使用该文件,则也可以将其存储在临时文件文件夹中。要获取临时文件文件夹的路径,请编写var folderPath = Path.GetTempPath()
希望这会有所帮助!
答案 1 :(得分:1)
为什么不只使用“保存文件对话框”并将excel文件保存在所需的位置?像这样:
private void SaveFile_FileOk(object sender, CancelEventArgs e)
{
string name = SaveFile.FileName;
string[] savearray = new string[] { "some test:" }
File.WriteAllLines(name, savearray);
//this is just an example, your excel file goes here.
}
然后在您的按钮上保存:
SaveFile.ShowDialog();
您可以选择要保存的路径...