我是一名新开发人员,目前正在学习 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,打印预览以及复制到剪贴板。我不为他们工作。我与他们没有任何关系。但我发现它对我来说非常有用。
- 1 回答
- 0 关注
- 222 浏览
添加回答
举报
0/150
提交
取消