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

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


白衣染霜花
浏览 223回答 1
1回答

跃然一笑

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