我是一名新开发人员,目前正在学习 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 包并在前端使用它吗?如果是这样,您为我推荐哪个包?
跃然一笑
相关分类