为了账号安全,请及时绑定邮箱和手机立即绑定

在 dotnet core 2.0 和 angular 2+ 中访问当前用户的下载文件夹

在 dotnet core 2.0 和 angular 2+ 中访问当前用户的下载文件夹

C#
白衣染霜花 2021-11-28 17:46:11
我是一名新开发人员,目前正在学习 dotnet 核心角度技术。我有一个 dotnet 核心项目,它允许我使用EPPlus.Core库将 SQL 表下载为 excel 文件。当我测试下面的代码时,它工作正常。我可以从我的下载文件夹中获取 excel 文件。但是,当我将它发布到 IIS 时,代码运行良好,但下载文件夹中没有文件。当我调试这个时,我意识到前端(在我的例子中,它是有角度的)无法访问我的下载文件夹,即使我在我的控制器中明确声明。这是我的控制器代码,它允许我导出为 excel 文件。[HttpGet][Route("ExportParticipants")]public string ExportParticipants(){    string rootFolder =  System.Convert.ToString(            Microsoft.Win32.Registry.GetValue(            @"HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders"                ,"{374DE290-123F-4565-9164-39C4925E467B}"                ,String.Empty));    var list = DateTime.Now.ToString("yyyy-MM-dd-HH-mmss");    string fileName = @"Export_Participants_" + list + "_.xlsx";    FileInfo file = new FileInfo(Path.Combine(rootFolder, fileName));    using (ExcelPackage package = new ExcelPackage(file))    {        IList<Participant> participantList = context.Participants.ToList();        ExcelWorksheet worksheet = package.Workbook.Worksheets.Add("Participants");        int totalRows = participantList.Count();        worksheet.Cells[1, 1].Value = "#";        worksheet.Cells[1, 2].Value = "FirstName";        worksheet.Cells[1, 3].Value = "Last Name";        int i = 0;        for (int row = 2; row <= totalRows + 1; row++)        {            worksheet.Cells[row, 1].Value = i+1;            worksheet.Cells[row, 2].Value = participantList[i].FirstName;            worksheet.Cells[row, 3].Value = participantList[i].LastName;            i++;        }        package.Save();    }    return " Participant list has been exported successfully";}当我用邮递员测试时,上面的代码工作正常。但是,当我发布它时,它不起作用。我没有收到错误。但我发现问题是rootFolder. 所以我尝试了以下代码:string rootFolder = Environment.GetEnvironmentVariable("USERPROFILE") + @"\" + "Downloads";我什至在 Code Project 中尝试了 Ray Koopa 的文章,但我在下载文件夹中什么也没有。如何将此导出的 excel 文件放置到当前用户的下载文件夹中?请注意,我使用的是窗户。还是我应该在前端执行此操作?我应该寻找一个 npm 包并在前端使用它吗?如果是这样,您为我推荐哪个包?
查看完整描述

1 回答

?
跃然一笑

TA贡献1826条经验 获得超6个赞

这将下载服务器下载文件夹中的 excel 文件。MemoryStream我将使用前端库,而不是处理。因为我有 JASON 数组形式的参与者列表,所以DataTables库是一个很好的选择。不仅可以导出excel,我们还可以做pdf,打印预览以及复制到剪贴板。我不为他们工作。我与他们没有任何关系。但我发现它对我来说非常有用。


查看完整回答
反对 回复 2021-11-28
  • 1 回答
  • 0 关注
  • 222 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信